uint8是8位無符號整型,uint16是16位無符號整型。


uint8是8位無符號整型,uint16是16位無符號整型。

整型有無符號(unsigned)和有符號(signed)兩種類型,在默認情況下聲明的整型變量都是有符號的類型(char有點特別),如果需聲明無符號類型的話就需要在類型前加上unsigned。在一些不可能取值為負數的時候,可以定義為unsigned,在一些底層的嵌入式編程的數據一般都是無符號。

 

向左轉|向右轉

 

擴展資料:

負數時的有符號整型和無符號整型的轉換

當執行一個運算時(如這里的a>b),如果它的一個運算數是有符號的而另一個數是無符號的,那么C語言會隱式地將有符號 參數強制類型為無符號數,並假設這兩個數都是非負的,來執行這個運算。

整數在計算機中通常是以補碼的形式存在的,而-1的補碼(用4個字節儲存)為1111,1111,1111,1111。對大多數C語言的實現,處理同樣字長的有符號數和無符號數之間的相互轉換的一般規則是:數值可能會改變,但是位模式不變。

也就是說,將unsigned int強制類型轉換成int,或將int轉換成unsigned int底層的位表示保持不變。也就是說,即使是-1轉換成unsigned int之后,它在內存中的表示還是沒有改變,即1111,1111,1111,1111。

同樣的儲存表示對於應用程序而言可能對應着不同的數據,例如1111,1111,1111,1111對於有符號數而言它表示-1,但對於無符號數而言,它表示UMax(因為沒有符號位,就像正數的反碼補碼都是它本身一樣,且最高位也不表示符號位),但是它們的底層存儲都是一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM