左移运算符怎么计算 C语言按位左移运算规则?
浏览量:1388
时间:2021-03-10 15:00:05
作者:admin
C语言按位左移运算规则?
在C语言中,按位左移的运算符是<<,其规则如下:
对于操作a<<;LTN,
1根据每个二进制值将n位移到高位(写入左侧);
2舍入最高位(最左侧)n位;
3在最低位(最右边)填充n个零。
简单示例如下:
示例1
0x12<<< 3=>
b00010010<< 3=>
b10010可以编写以下程序来验证:
#include<stdio。H>void check(char a,int n){printf(“0x%HHx<<;lt)}%D=0x%HHxn”,a,n,a<<N)}int main(){check(0x12,3)check(0x9e,2)return 0}
它的运行结果是
0x12< 3=0x900x9e< 2=0x78
可以看出它与我们的计算结果是一致的。
C语言带符号数的左移右移搞不清楚?
对于位操作,操作对象可以是有符号的或无符号的。如果运算符有符号且其值为负,则位操作如何处理运算符的“有符号位”取决于机器。左移运算符在右侧插入一个值为0的二进制位。右移运算符的行为>>;取决于左侧操作对象的类型:如果是无符号的,则在左侧插入一个值为0的二进制位;如果是有符号的,则在左侧插入一个有符号位的副本或一个值为0的二进制位,具体取决于特定的环境。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。