怎么把數(shù)字的負(fù)數(shù)去掉 計(jì)算機(jī)中兩個(gè)負(fù)數(shù)是怎么想減的?
計(jì)算機(jī)中兩個(gè)負(fù)數(shù)是怎么想減的?如果你想知道計(jì)算機(jī)是如何進(jìn)行數(shù)字運(yùn)算的,你需要了解計(jì)算機(jī)的存儲(chǔ)原理。大家都知道計(jì)算機(jī)只知道0和1,但是0和1對(duì)人不友好。怎么才能轉(zhuǎn)化他們呢?這需要從電腦的存儲(chǔ)說起。Bit
計(jì)算機(jī)中兩個(gè)負(fù)數(shù)是怎么想減的?
如果你想知道計(jì)算機(jī)是如何進(jìn)行數(shù)字運(yùn)算的,你需要了解計(jì)算機(jī)的存儲(chǔ)原理。
大家都知道計(jì)算機(jī)只知道0和1,但是0和1對(duì)人不友好。怎么才能轉(zhuǎn)化他們呢?這需要從電腦的存儲(chǔ)說起。
Bit和byte bit:源自英文bit,音譯為 "比特 ",意思是二進(jìn)制位。位是計(jì)算機(jī)中數(shù)據(jù)存儲(chǔ)的最小單位,11010100是一個(gè)8位二進(jìn)制數(shù)。
Byte:來自英文byte,音譯為 "拜特 ",習(xí)慣上用大寫字母 "B "。字節(jié)是計(jì)算機(jī)處理數(shù)據(jù)的基本單位。信息在計(jì)算機(jī)中是以字節(jié)存儲(chǔ)和解釋的。規(guī)定一個(gè)字節(jié)由八個(gè)二進(jìn)制位組成,即一個(gè)字節(jié)等于八位(1Byte8bit).八位字節(jié)的最小數(shù)量是0000000,最大數(shù)量是1111111;通常一個(gè)字節(jié)可以存儲(chǔ)一個(gè)ASCII碼,兩個(gè)字節(jié)可以存儲(chǔ)一個(gè)漢字國標(biāo)碼。
Unsigned integer, signed integer and unsigned character, signed character.
一般來說,char類型變量在計(jì)算機(jī)內(nèi)存中占用1個(gè)字節(jié),即8個(gè)字節(jié)。未簽名表示未簽名,簽名表示已簽名。Char默認(rèn)為未指定的類型。
如果是無下標(biāo)的char,那么最高位(最左邊)可以用來表示數(shù)字,所以char在二進(jìn)制中可以表示的范圍是00000000 ~ 1111111,換算成十進(jìn)制就是0~255。
如果是有符號(hào)的char,需要用最高位(最左邊的位)來表示正負(fù)0為正,1為負(fù),所以只有剩下的7位可以表示數(shù)字,所以可以表示的范圍是1111 1111 ~ 0111111,十進(jìn)制轉(zhuǎn)換位是-127~127。還有一個(gè)1000 0000就是-128的意思,因?yàn)闆]有負(fù)0的概念。計(jì)算機(jī)中的負(fù)數(shù)都是用補(bǔ)數(shù)表示的。補(bǔ)語的概念將在后面討論。
Unsigned int和signed int是在char的基礎(chǔ)上理解的,只不過int是四個(gè)字節(jié),也就是4*832位。默認(rèn)情況下,Int是有符號(hào)的。因此,無符號(hào)整數(shù)的范圍是:0~2-1的32次方。有符號(hào)int表示的范圍是:-2的31次方~2的31次方-1。
原碼、補(bǔ)碼、補(bǔ)碼:要想把原碼、補(bǔ)碼、補(bǔ)碼理解清楚,還需要理解另外兩個(gè)概念:機(jī)號(hào)和真值。
機(jī)器號(hào):一個(gè)數(shù)在計(jì)算機(jī)中的二進(jìn)制表示,稱為這個(gè)數(shù)的機(jī)器號(hào)。機(jī)器的數(shù)量是有符號(hào)的,比如十進(jìn)制的數(shù)字3,計(jì)算機(jī)的字長是8位,換算成二進(jìn)制就是00000011。如果是-3,就是10000011。00000011和10000011這里是機(jī)器的數(shù)量。
真值:以上面的機(jī)器號(hào)00000011(十進(jìn)制3)為例,它的形式值是131(二進(jìn)制轉(zhuǎn)換為十進(jìn)制),但我們實(shí)際想要的是3,所以需要去掉最高符號(hào)位為00000001的真值0000111 3。真值為1000 0001–000 0011–3。
知道了以上兩個(gè)概念,我們就可以看原碼,補(bǔ)碼,補(bǔ)碼了。
原碼:顧名思義,原碼是我本來想表示的值的二進(jìn)制碼,所以3/-3的原碼需要考慮符號(hào)位:3的原碼是:0000 0011。-3的原碼是:1000 0011。
反向代碼:
正數(shù)的負(fù)碼是它本身。
負(fù)數(shù)的求反是基于它的原始碼,符號(hào)位不變,其他位反轉(zhuǎn)。
3原代碼為:0000 0011,反代碼為:0000 0011。
-3原代碼為:1000 0011,反代碼為:1111 1100。
補(bǔ)充:
正數(shù)的補(bǔ)數(shù)是它本身。
也就是說,在逆代碼的基礎(chǔ)上,1
3原代碼為:0000 0011,反代碼為:0000 0011,補(bǔ)碼為:0000 0011。
-3原碼為:1000 0011,反碼為:1111 1100,補(bǔ)碼為:1111 1101。
你為什么有這么多碼?看了以上內(nèi)容,大家一定很困惑。為什么要弄這么多碼?這是因?yàn)橛?jì)算機(jī)可以 不要區(qū)分符號(hào)位,因?yàn)檫@顯然使計(jì)算機(jī)的基本電路設(shè)計(jì)變得非常復(fù)雜!所以人們想出了一個(gè)方法,將符號(hào)位包含在運(yùn)算中。我們知道,根據(jù)算法,減去一個(gè)正數(shù)等于加上一個(gè)負(fù)數(shù),即: 1-1 1 (-1) 0,所以機(jī)器只能加不能減,所以計(jì)算機(jī)運(yùn)算的設(shè)計(jì)更簡單。
另外,加減乘除,正數(shù)當(dāng)然好辦。如果遇到負(fù)數(shù),就會(huì)有問題。讓 讓我們看看-3-(-3)如果你使用原始代碼:
電腦里只有加法,所以-3-(-3)3(-3);
000000011 100001110000110、我們對(duì)符號(hào)進(jìn)行計(jì)數(shù),轉(zhuǎn)換成十進(jìn)制:-6;
因?yàn)樵即a沒有。;不行,用反向代碼怎么樣?好吧,試試看。
0000 0011 1111 1100 11111111,我們數(shù)符號(hào)的時(shí)候,小數(shù)是:-127;
然后再次嘗試補(bǔ)碼。
0000 0011 1111 1101 00000000;我們統(tǒng)計(jì)轉(zhuǎn)換成十進(jìn)制的符號(hào):0;
好吧,那 是對(duì)的;
總結(jié)所以計(jì)算機(jī)運(yùn)算是基于補(bǔ)碼運(yùn)算,計(jì)算機(jī)只有加法,兩個(gè)負(fù)數(shù)的減法最終會(huì)通過加法和數(shù)本身的正負(fù)來實(shí)現(xiàn)。
excel中數(shù)字如何統(tǒng)一變負(fù)?
1打開excel,點(diǎn)擊鼠標(biāo)左鍵選擇需要變成負(fù)數(shù)的單元格。