uint16是16位元無符號整數;整數類型有無符號和有符號兩種類型,在預設情況下宣告的整數變數都是有符號的類型,如果需宣告無符號類型的話就需要在類型前加上unsigned。
本文操作環境:Windows7系統,DELL G3電腦
uint16是什麼資料型別?
uint16是16位元無符號整數,uint8是8位元無符號整數
整數型有無符號(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(因為沒有符號位,就像正數的反碼補碼都是它本身一樣,且最高位也不表示符號位),但是它們的底層儲存都是一樣的。
更多相關知識,請造訪常見問題欄位!
以上是uint16是什麼資料型的詳細內容。更多資訊請關注PHP中文網其他相關文章!