C# 移位返回错误的结果 Console.WriteLine(7>(32-4));
出于某种原因,第二个方法返回0而不是112。但它们应该彼此平等,它们都应该返回112 更新: 众所周知,C# 移位返回错误的结果 Console.WriteLine(7>(32-4));,c#,algorithm,C#,Algorithm,出于某种原因,第二个方法返回0而不是112。但它们应该彼此平等,它们都应该返回112 更新: 众所周知,(x>(32-n)) 你的想法?不太明白你希望在这里看到什么: 7>(32-4)正在右移(如除法)7/(2^28),转换为整数值将导致0 问题是为什么Console.WriteLine会出现整数重载峰值:是因为您对CLR所期望的整数值进行操作,结果是int 所以,结果是正确的。不太明白您在这里期望看到什么: 7>(32-4)正在右移(如除法)7/(2^28),转换为整数值将导致0 问题是为什么
(x>(32-n))
你的想法?不太明白你希望在这里看到什么:
7>(32-4)
正在右移(如除法)7/(2^28)
,转换为整数值将导致0
问题是为什么Console.WriteLine
会出现整数重载峰值:是因为您对CLR
所期望的整数值进行操作,结果是int
所以,结果是正确的。不太明白您在这里期望看到什么:
7>(32-4)
正在右移(如除法)7/(2^28)
,转换为整数值将导致0
问题是为什么Console.WriteLine
会出现整数重载峰值:是因为您对CLR
所期望的整数值进行操作,结果是int
所以结果是正确的
这里有更详细的解释:
这里有更详细的解释:
你从哪里知道这些是循环的?对于文档,你从哪里知道这些是循环的?对于文档而言,A
>
不是一个部门,而是一个班次。只有不骑自行车的结果与除法的结果相同。正确,我想这不是关于骑自行车的,但从编辑的答案上看,我看到了。编辑。@AlanDert:在我看来是:或者它不是书中的完整提示,或者书中有打字错误,因为提供的代码不正确,依我看。>
不是除法,而是移位。只有不骑自行车的结果与除法的结果相同。正确,我想这不是关于骑自行车的,但从编辑的答案上看,我看到了。编辑。@AlanDert:在我看来是:或者它不是书中的完整提示,或者书中有打字错误,因为提供的代码不正确,依我看。
Console.WriteLine(7 << 4);
Console.WriteLine(7 >> (32 - 4));
(x << n) == (x >> (32 - n))
//Seven = 00000111
Console.WriteLine(7 >> 1); //00000011
Console.WriteLine(7 >> 2); //00000001
Console.WriteLine(7 >> 3); //00000000
Console.WriteLine(7 >> 4); //00000000
//.
//.
//.
Console.WriteLine(7 >> 28); //00000000