簡介
計算機中的整數(shù)分為兩類:不帶符號位的整數(shù)(unsigned integer,也稱為無符號整數(shù)),此類整數(shù)一定是正整數(shù);帶符號位的整數(shù)(signed integer),此類整數(shù)可以表示正整數(shù),又可以表示負整數(shù)。
無符號整數(shù)常用于表示地址、索引等正整數(shù),它們可以是8位、16位、32位、64位甚至更多。8個二進制表示的正整數(shù)其取值范圍是0~255(-1),16位二進制位表示的正整數(shù)其取值范圍是0~65535(
-1),32位二進制位表示的正整數(shù)其取值范圍是0~
-1。
有符號和無符號的差別
int是有符號的,unsigned是無符號的。
它們所占的字節(jié)數(shù)其實是一樣的,但是有符號的需要安排一個位置來表達我這個數(shù)值的符號,因此說它能表示的絕對值就要比無符號的少一半。舉個例子,我們有一個1個1字節(jié)的整數(shù)(雖然這種類型不存在),那么無符號的就是這樣:00000000~11111111 這個就是無符號的范圍。
一個字節(jié)是8位, 有符號的數(shù),因為第一個位要用來表示符號,那么就只剩下7個位置可以用來表示數(shù)了0000000~1111111因為有符號,所以還可以表示范圍:-1111 111 ~ +1111 111。
定義c語言無符號整數(shù)整型變量的分類: 基本整型:int 短整型,short int 長整型,long int對以上三類加上修飾符unsigned以指定是“無符號數(shù)”。如果加上修飾符signed,則指定的是“有符號數(shù)”,如果既不指定為signed也不指定是unsigned,則隱含為有符號(signed)。舉例如下:
請問以下代碼的輸出?
unsigned int a=1,int b=-2;
int c=-2;
cout