关于C语言的左移(<<)和右移(>>)

发布网友

我来回答

2个回答

热心网友

左移比较简单,右边补0(移几位就补几个0),左边丢掉。
右移比较复杂,右移分两种:
(1)逻辑右移,左边补0(移几位补几位),右边移出去的丢掉。
(2)算术右移,左边补最高位(即原来的最高位是0就补0,是1就补1,因为最高位代表符号,这样可以保证负数不会变成正数),右边丢掉。追问解释的挺好的,但是没对着题目回答。我题目没说清楚,是无符号的基础上进行移位!
我的意思是左移和右移之后舍弃的位,怎么补回来,具体例子看一下问题!

热心网友

可以定义一个中间变量暂存要被移出去的位,正常移位之后再或上这个中间变量即可~

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com