![]() |
1
35
C中的数字文本是
将结果再次减少到8位。与Java不同,C.*不允许溢出被未检测到。基本上,当试图将510赋给一个字节时,您有两个明智的选择:要么钳制最大值,然后得到255,要么丢弃不合适的位,在这种情况下,得到254。
您也可以使用
|
![]() |
2
8
您将255移动1位,然后尝试将其分配到一个字节。
|
![]() |
3
5
|
![]() |
4
5
结果
您需要转换移位的结果,而不是输入。此外,它将产生溢出(它大于一个字节后的所有),因此您需要指定您需要一个未选中的强制转换。 换句话说,这将起作用:
|
![]() |
5
3
你试过铸造它吗?
这是一个有趣的方法-如果用
既然是
|
![]() |
6
1
将为您提供多个字节。 |
![]() |
7
0
由于<<的优先级高于&您可以保存括号:
|
|
John Proctor · C中位的掩蔽范围 7 年前 |
![]() |
Jakey · C枚举定义中的按位移位有什么作用? 7 年前 |
![]() |
Areg Sarvazyan · 从无符号int中提取位的函数 7 年前 |
![]() |
goodvibration · 实施安全左移 7 年前 |
![]() |
AesSedai101 · Kotlin'shl'不工作 7 年前 |
![]() |
Sam Hammamy · 如何在位运算中选择正确的左移位? 7 年前 |