
二进制数据的左移右移具体怎么移的? 5
这学期学了计算机组成原理,有求浮点数的加减的题,步骤是对阶,尾数相加,规格化,舍入。其中牵涉到二进制数据的左移和右移。看书也没有看懂到底怎么移的。...
这学期学了计算机组成原理,有求浮点数的加减的题,步骤是对阶,尾数相加,规格化,舍入。其中牵涉到二进制数据的左移和右移。看书也没有看懂到底怎么移的。
展开
展开全部
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
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,我跟懵。。。还有逻辑运算和算数运算的分别。。。能解释下吗?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |