![]() |
1
13
位移位运算符实际上不除以2。相反,它将数字的位移到右边,移到右边指定的位置。例如:
注意第二行中的位与上面的行是如何相同的,只是 向右移动一个位置。现在看第二个例子:
这和以前完全一样。然而,5的结果是由于最后一位右移并消失,从而产生结果5。由于这种行为,右移位运算符通常相当于除以2,然后丢弃任何余数或小数部分。 |
![]() |
2
2
二进制的11是1011
意思是你把你的二进制表示移到右边一步。
然后有101个二进制数,是1*1+0*2+1*4=5。
右移1可将sum(a_i*2^i)[i=0..n]转换为sum(a_i+1)*2^i)[i=0..n-1] 这就是为什么如果你的数字是偶数(即a_0=0),它是除以2。(很抱歉自定义的乳胶语法…:) |
![]() |
3
1
二进制没有十进制数的概念。它返回截断的(int)值。 11=1011二进制。右移就有101,十进制是5。 |
![]() |
4
0
位移位与2^n的除法或乘法相同。在整数运算中,结果向零舍入为整数。在浮点运算中,不允许位移位。 内部位移位,好吧,移位位,舍入仅仅意味着从边上掉下来的位简单地被移除(并不是说它实际上会计算精确的值,然后对其进行舍入)。出现在对边上的新位对于右侧和正值始终为零。对于负值,将在左侧附加一个位,以便该值保持为负值(请参见如何 two's complement 我使用的算术定义仍然是正确的。 |
![]() |
5
0
在大多数静态类型语言中,操作的返回类型是例如“int”。这就排除了分数结果,就像整数除法一样。 (关于什么是“隐藏”有更好的答案,但您不需要了解这些就可以了解类型系统的基本知识。) |
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |