Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 移位返回错误的结果 Console.WriteLine(7>(32-4));_C#_Algorithm - Fatal编程技术网

C# 移位返回错误的结果 Console.WriteLine(7>(32-4));

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 问题是为什么

出于某种原因,第二个方法返回0而不是112。但它们应该彼此平等,它们都应该返回112

更新: 众所周知,
(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