C做什么>>做

C做什么>>做,第1张

概述什么>>在这种情况下呢? int n = 500;unsigned int max = n>>4;cout << max; 打印出31. 500到达31后它做了什么? 有点移位! 原始二进制500:     111110100 转移4     000011111是31! Original: 1111101001st Shift:0111110102nd Shift:0011111013r 什么>>在这种情况下呢?

int n = 500;unsigned int max = n>>4;cout << max;

打印出31.

500到达31后它做了什么?

解决方法 有点移位!

原始二进制500:
    111110100

转移4
    000011111是31!

Original: 1111101001st Shift:0111110102nd Shift:0011111013rd Shift:0001111104th Shift:000011111 which equals 31.

这相当于将整数除以16.

500/16 = 31
500/2 ^ 4 = 31

一些事实从这里拉出来:http://www.cs.umd.edu/class/spring2003/cmsc311/Notes/BitOp/bitshift.html(因为从我头上咆哮导致漫无目的,这是非生产性的……这些人说它比我更干净)

使用<<<<<导致0从最低有效端(右侧)移位,并导致位从最高端(左侧)脱落. 使用>>向右移位导致0从最高端(左侧)移位,如果数字是无符号的,则导致位从最低端(右侧)掉落.

Bitshifting不会改变被移位变量的值.而是使用位移结果创建临时值.

总结

以上是内存溢出为你收集整理的C做什么>>做全部内容,希望文章能够帮你解决C做什么>>做所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223719.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存