無符號整數

無符號整數

計算機里的數是用二進制表示的,最左邊的這一位一般用來表示這個數是正數還是負數,這樣的話這個數就是有符號整數。如果最左邊這一位不用來表示正負,而是和後面的連在一起表示整數,那么就不能區分這個數是正還是負,就只能是正數,這就是無符號整數。

基本介紹

  • 中文名:無符號整數
  • 外文名:unsigned integer
  • 常用於:表示地址、索引等
  • 屬性:正整數
簡介,定義c語言無符號整數,

簡介

計算機中的整數分為兩類:不帶符號位的整數(unsigned integer,也稱為無符號整數),此類整數一定是正整數;帶符號位的整數(signed integer),此類整數可以表示正整數,又可以表示負整數。
無符號整數常用於表示地址、索引等正整數,它們可以是8位、16位、32位、64位甚至更多。8個二進制表示的正整數其取值範圍是0~255(
-1),16位二進制位表示的正整數其取值範圍是0~65535(
-1),32位二進制位表示的正整數其取值範圍是0~
-1。
有符號和無符號的差別
int是有符號的,unsigned是無符號的。
它們所占的位元組數其實是一樣的,但是有符號的需要安排一個位置來表達我這個數值的符號,因此說它能表示的絕對值就要比無符號的少一半。舉個例子,我們有一個1個位元組的整數(雖然這種類型不存在),那么無符號的就是這樣:00000000~11111111 這個就是無符號的範圍。
一個位元組是8位, 有符號的數,因為第一個位要用來表示符號,那么就只剩下7個位置可以用來表示數了0000000~1111111因為有符號,所以還可以表示範圍:-1111 111 ~ +1111 111。

定義c語言無符號整數

整型變數的分類: 基本整型:int;短整型:short int ;長整型:long int 對以上三類加上修飾符unsigned以指定是“無符號數”。如果加上修飾符signed,則指定的是“有符號數”,如果既不指定為signed也不指定是unsigned,則隱含為有符號(signed)。舉例如下:
請問以下代碼的輸出?
unsigned int a=1,int b=-2;
int c=-2;
cout<<b<<endl;
if(a+c>0)
cout<<a+b<<endl;
運行結果:
4294967294
4294967295
Press any key to continue
首先,程式的第一行,變數b和a一樣,都是無符號整型,這是一個陷阱。
其次,在32位系統中,int的範圍是-2147483648~+2147483647,而unsigned int的範圍是0~4294967295。負數在無符號整型中用補碼表示,所以b是4294967294。
第三,int默認為signed int,它與unsigned int運算時,結果被轉換為unsigned int,所以a是4294967295。

相關詞條

熱門詞條

聯絡我們