1. 程式人生 > 其它 >uint16是什麼資料型別 中介機構公司

uint16是什麼資料型別 中介機構公司

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(因為沒有符號位,就像正數的反碼補碼都是它本身一樣,且最高位也不表示符號位),但是它們的底層儲存都是一樣的。