perl – 为什么不同编程语言的模数不同?
发布时间:2020-12-15 21:21:29 所属栏目:大数据 来源:网络整理
导读:Perl print 2 % -18; – -16 Tcl puts [expr {2 % -18}] – -16 但是VBScript wscript.echo 2 mod -18 – 2 为什么有区别? 解决方法 wikipedia answer在这里是非常有用的。 一个简短的总结就是可以定义任何整数 a = qn r 其中所有这些字母都是整数,和 0 =
Perl
print 2 % -18; – > -16 Tcl puts [expr {2 % -18}] – > -16 但是VBScript wscript.echo 2 mod -18 – > 2 为什么有区别? 解决方法
wikipedia answer在这里是非常有用的。
一个简短的总结就是可以定义任何整数 a = qn r 其中所有这些字母都是整数,和 0 <= | r | < | n |。 几乎每个编程语言都需要(a / n)* n(a%n)= a。所以模数的定义几乎总是取决于整数除法的定义。整数除以2 / -18 = 0或2 / -18 = -1的整数除法有两种选择。取决于您的语言是真实的,通常会更改%操作符。 这是因为2 =(-1)* -18(-16)和2 = 0 * -18 2。 对于Perl,情况很复杂。 The manual page说:“请注意,当使用整数在范围内时,”%“可以让您直接访问由C编译器实现的运算符,这个运算符对于负操作数没有定义好,但是执行速度更快。如果使用整数在范围内,它可以选择Perl的任一选项(如C)。如果使用整数不在范围内,手册中说“如果$ b为负数,则$ a%$ b为$ a减去不少于$ a的$ b的最小倍数(即,结果将小于或等于等于零)“。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 利用Groovy的动态特性删除属性
- call / apply / bind
- delphi – 菜单项是否可以接收OnClick事件,即使它没有启用?
- 将 SPSS 分析技术应用于大数据
- 如何阻止调试器进入delphi给定单元
- java – 为什么Spring没有在依赖jar中连接我的@Autowired成
- delphi XE5下 andriod 广告图片的demo
- golang expected declaration, found 'IDENT'
- NetBeans 时事通讯(刊号 # 86 - Dec 23, 2009)
- CSAPP lab2 二进制拆弹 binary bombs phase_3