二进制数据的左移右移具体怎么移的?
发布网友
发布时间:2022-05-02 15:54
我来回答
共2个回答
热心网友
时间:2022-05-26 17:39
1、以左移为例:
if ((x &1000 0000) == 0)
移出0;
else
移出1;
操作 x<<1;
2、左移右移的操作方法:
1)C语言的左移和右移是以二进制数据为基准的
2)左移和右移的符号:左移的符号"<<";右移的符号">>"
3)无论左移还是右移,要移位的数据都在左边,符号右边是要移动的位数(例如移动3位)
4)右移是把该数据的二进制数全部右移N位,数据高位补零,左移则和右移相反。
5)右移举例--例如将5右移一位:5 >> 1(符号左边是被移位的数据,符号右边是要移位的位数)
将5转换为二进制为0B00000101 ,右移后的结果是:0B00000010追问那我想问下二进制数据的原码,反码,补码的左移右移怎么移的?看其他资料上还说有不同情况,正数和负数不一样,有的补0,有的补1,我跟懵。。。还有逻辑运算和算数运算的分别。。。能解释下吗?
热心网友
时间:2022-05-26 17:40
乘二时左移,和10进制乘法差不多,例如:9×10=90,(10111)×2=01110