MSDN的解释没看懂右移运算符 (>>) 将第一个操作数向右移动第二个操作数所指定的位数。//第二个操作数是小数也可以?如果第一个操作数为 int 或 uint(32 位数),则移位数由第二个操作数的低五位给出(第二个操作数 & 0x1f)如果第一个操作数为 long 或 ulong(64 位数),则移位数由第二个操作数的低六位给出(第二个操作数 & 0x3f)。如果第一个操作数为 int 或 long,则右移位是算术移位(高序空位设置为符号位)。如果第一个操作数为 uint 或 ulong 类型,则右移位是逻辑移位(高位填充 0)。*************************************************************************左移运算符 (<<) 将第一个操作数向左移动第二个操作数指定的位数。第二个操作数的类型必须是 int。如果第一个操作数是 int 或 uint(32 位数),则移位数由第二个操作数的低 5 位给出。如果第一个操作数是 long 或 ulong(64 位数),则移位数由第二个操作数的低 6 位给出。第一个操作数的高序位被放弃,低序空位用 0 填充。移位操作从不导致溢出。红色的地方都没看懂 哪位有爱心的哥 给我说说 详细点
解决方案 »
- C# 中如何产生一组服从正态分布的数据?
- c# 如何 实现 鼠标控制?
- 各位高手看看了,DrawRectangleRectangle长方形,右边的边和下边的边看不见阿!
- form编程中如何在datagrid中选中多行,并使用Ctrl+C能够将选定内容复制进剪贴板------急阿
- C#趣味题
- 请问我怎么把在命令模式输入ipconfig/all的信息通过C#读入到textbox或者其它控件,谢谢!
- 為什么在簡體操作系統中建立的form﹐在繁體系統中運行會變形(大小)
- textBox1.DataBindings.Add后操作?
- 一个TreeView问题!!(急)
- 字符串转成 decimal 类型的值的问题
- 我的AJAX方法在JS中没执行,有人帮我看看吗,万分感谢!
- C#,WEBFORM,向EXCEL写数据出错COMException (0x800a03ec)
int e=6<<3;
Console.WriteLine("e={0}",e);
//6的二进制是00000110,左移三位后等于00101000,即48
long lg = 1;
Console.WriteLine("0x{0:x}", lg << 33);
输出:
0x200000000
很简单。任何数字在计算机中都是二进制保存。比如
1用一个字节byte表示。就是
0000 0001
如果左移,就是把1往左移动一个成为
0000 0010
左右移就是相对二进制说的。
没很复杂,只要注意一点,有符号的左移后,原位置补充为1.无符号数左移后原位置填充0.右移都相同。