首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >位移位,右移4位

位移位,右移4位
EN

Stack Overflow用户
提问于 2018-12-02 21:03:27
回答 3查看 95关注 0票数 0

所以我正在为C做位移位

00001010 >> 4不应该给0000000吗?

因为我把这个比特移到了4倍,这和除以4是一样的。但是在我的笔记上,它说10101000是错的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-12-03 20:37:31

每一次移动等于将值除以2,向右移动四次就等于除以2,四次。它是整数的数学,所以任何小数部分都被截断。

假设00001010 (10)是二进制表示法,结果如下:

移位1:00000101 (5)

移位2:00000010 (2)

移位3:00000001 (1)

移位4:00000000 (0)

结果确实是0。

票数 0
EN

Stack Overflow用户

发布于 2018-12-02 21:11:42

你的笔记错了。printf("%d\n", strtol("00001010", 0, 2) >> 4)生成“0”。

票数 0
EN

Stack Overflow用户

发布于 2018-12-02 21:14:45

向右移动00001010 bin (10月10日)4次将确实给您: 00000000 bin (0 12月),而左移4次: 00001010 bin (12月10日)将给您10100000 bin (160Dec编辑)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53584598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档