繁体   English   中英

hibyte = Value >> 8是什么意思?

[英]What does hibyte = Value >> 8 meaning?

我正在使用C开发程序,并从示例代码中找到了

unHiByte = unVal >> 8;

这是什么意思?? 如果unVal = 250 unHiByte的值是什么

我对此真的感到困惑。请帮助。

提前致谢..

编程中的“ >>”是按位运算。 操作>>表示右移操作。 因此,unVal >> 8表示将unVal右移8位。 将位右移可以解释为将值除以2。

因此,unHiByte = unval >> 8表示unHiByte = unVal /(2 ^ 8)(将unVal除以2八次)

无需进入移位运算符本身(因为已经回答了),这里的假设是unVal是一个两个字节的变量,具有一个高字节(高8位)和一个低字节(低8位)。 目的是获得仅由高8位并舍弃低位所产生的值。

移位运算符虽然可以通过任何书籍/教程轻松学习,但这也许是某个人否决了该问题的原因。

>>是按位右移

它按位操作。 unHiByte = unVal >> 8; unVal=250

它的二进制形式是11111010

右移表示将位向右移。 因此,当您将1111 1010右移8位时,您将得到0000 0000

注意:您可以通过将>>左边的数字除以2 ^( >>右边的数字)来轻松确定右移运算结果。

因此, 250/2 8 = 0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM