簡體   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