国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

C語(yǔ)言中整形在計(jì)算機(jī)中的存儲(chǔ)

2019-11-11 07:20:40
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

整形包括字符、短整形、整形、長(zhǎng)整形,整形的存儲(chǔ)方式都是一樣的,整形在存儲(chǔ)時(shí)都是以補(bǔ)碼進(jìn)行存儲(chǔ)的。

下面用char來(lái)解釋:

 

signed char          -128 到127

unsigned char        0 到 255

short int            -32768 到32797

unsigned short int     0 到65535

 

 

Char

Char類型其實(shí)也是一種整形,因?yàn)閏har的每個(gè)字符都是由0到255的整形數(shù)字來(lái)表示的;

ANSI C提供了char、signed char和unsigned char三種字符類型;

它們都是按照一個(gè)字節(jié)存儲(chǔ)的,可以保存256個(gè)不同的值;

unsigned char無(wú)符號(hào)的整形存儲(chǔ)簡(jiǎn)單,因?yàn)檎麛?shù)的原反補(bǔ)碼相等,范圍是0到255,直接存入相應(yīng)的二進(jìn)制。

 

signed char 的取值范圍在-128到+127,為什么在這個(gè)范圍呢?

計(jì)算機(jī)在存儲(chǔ)數(shù)據(jù)都是以數(shù)據(jù)的補(bǔ)碼來(lái)進(jìn)行存儲(chǔ),有符號(hào)類型存儲(chǔ)是,最高被當(dāng)做符號(hào)位,0正1負(fù),所以signed char取值范圍在

-(2^7)-1到+(2^7)-1,但是發(fā)現(xiàn)這個(gè)值是-127到+127,這是因?yàn)?#43;0和-0被計(jì)算了兩次,但實(shí)際情況0只有一個(gè),計(jì)算機(jī)一般把+0當(dāng)做零,把-0當(dāng)做-128,所以signed char 的取值范圍是-128到+127;

這里計(jì)算機(jī)是怎樣把-0識(shí)別為-128?

因?yàn)橄到y(tǒng)識(shí)別到最高位是1后面全0的情況,系統(tǒng)會(huì)在最高位自動(dòng)添加一個(gè)符號(hào)位,所以-128具有9個(gè)bit位

-128在存入內(nèi)存的時(shí),因?yàn)閏har只有8個(gè)bit位,所以讀取低8位,結(jié)果是1000 0000;

與-0的二進(jìn)制序列一樣,所以就用-128表示-0;系統(tǒng)識(shí)別1000 0000 時(shí)就會(huì)自動(dòng)添加一個(gè)符號(hào)位,就是-128了。(在這里計(jì)算時(shí)符號(hào)位參與運(yùn)算)

原碼    1 1000 0000

反碼    1 0111 1111

補(bǔ)碼    1 1000 0000

 

下面看幾個(gè)有關(guān)理解整形存儲(chǔ)的代碼:

#include<stdio.h>#include<windows.h>int main(){	unsigned char a = -1;	signed char b= -1;	char c = -1;	PRintf("a=%d b=%d c=%d/n", a, b,c);	system("pause");	return 0;}

signed char型提升為int型打印時(shí),char補(bǔ)碼的符號(hào)位前面要全補(bǔ)成和char相同的符號(hào)位,然后在把最高位當(dāng)做符號(hào)位,求原碼。

#include<stdio.h>#include<windows.h>int main(){	char a = 128;	char b = -128;	printf("a = %u/nb = %u/n", a,b);	system("pause");	return 0;}

不論是128 還是-128保存到cahr a里面都是讀取補(bǔ)碼的低8位即1000 0000;

在a解釋用于打印的時(shí)候會(huì)把最高位(第八位)作為符號(hào)位即1,所以char 提升為unsigned int類型,char的符號(hào)位前面的根據(jù)char類型全補(bǔ)成1。 然后以無(wú)符號(hào)整形輸出。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 屯留县| 鹤山市| 泸溪县| 临邑县| 太湖县| 邹平县| 宜兰市| 宁城县| 金川县| 邢台市| 义乌市| 邳州市| 武夷山市| 崇州市| 宁远县| 麻城市| 景德镇市| 无锡市| 桃园县| 哈尔滨市| 家居| 普定县| 调兵山市| 普格县| 岐山县| 梅河口市| 宁夏| 太仓市| 南安市| 邻水| 米脂县| 集安市| 渭源县| 平塘县| 克山县| 华坪县| 丽水市| 钟山县| 嘉兴市| 故城县| 北碚区|