99问答网
所有问题
为什么 一个程序如果使用了有符号数的右移位操作,它就是不可移植的了?
如题所述
举报该问题
推荐答案 2008-04-30
因为在C语言标准中,只规定了无符号数的移位操作是采用逻辑移位(即左移、右移都是使用的逻辑左移和逻辑右移)。
而对于有符号数,其左移操作还是逻辑左移,但右移操作是采用逻辑右移还是算术右移就取决于机器了!(算术右移和逻辑右移的区别是:算术右移不右移符号位,即最高位,右移后前补0还是1取决于符号位的值;逻辑右移执行时将移动符号位,右移后前补0)
因此,一个程序如果使用了有符号数的右移位操作,它就是不可移植的了。
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://99.wendadaohang.com/zd/BveOXvjz.html
其他回答
第1个回答 2008-04-30
是不是符号的使用错误,你最好把你的程序源代码也发出来吗 ?
相似回答
大家正在搜
相关问题
c语言中为什么左移不分符号数无符号数,而右移分呢??
C语言中移位运算
“移位运算符在移位操作中,无论左移还是右移,所移出的空位一律...
算术左移、逻辑左移、算术右移、逻辑右移有什么不同?
JAVA位运算符
关于初学编程,学了一下VB,第一本看的是一些案例,不过有些地...
是不是无符号数的移位都是逻辑移位,有符号数的移位都是算术移位...
c语言中为什么左移不分符号数无符号数,而右移分呢??