版權(quán)歸原作者所有,如有侵權(quán),請聯(lián)系我們

[科普中國]-無符號整數(shù)

科學百科
原創(chuàng)
科學百科為用戶提供權(quán)威科普內(nèi)容,打造知識科普陣地
收藏

簡介

計算機中的整數(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