完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
C语言里的逻辑移位与算术移位
C语言的移位操作符 >> << 可以将值按照二进制位左移或右移. 具体的实现方式如下: 左移 << : 左移时值最左边的几位被丢弃, 右边多出来的空位用 0 补齐. 例子:移位之前: 1 0 1 1 0 1 0 1 左移3位: 1 0 1 1 0 1 0 1 0 0 0 右移 >> : 右移时值最右边的几位被丢弃, 对于无符号数, 跟左移时一样空位补 0, 对于有符号数, 左边多出来的空位的有两种选择: 逻辑右移 会将空位补 0, 算术右移 会用值得符号位(最高位)补空位. 移位前: 1 0 1 1 0 1 0 1 逻辑右移3位后: 0 0 0 1 0 1 1 0 1 0 1 算术右移3位后: 1 1 1 1 0 1 1 0 1 0 1 总结: 无符号数始终执行逻辑右移. 有符号数右移具体使用逻辑右移还是算术右移由编译器决定. 若移位操作符右操作数为非正值或大于原值位数, 则移位结果未定义. |
|
|
|
只有小组成员才能发言,加入小组>>
2514 浏览 0 评论
1092浏览 2评论
703浏览 1评论
456浏览 0评论
198浏览 0评论
337浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-23 22:22 , Processed in 1.059128 second(s), Total 78, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号