軟體開發必備 計算機基礎知識

2021-09-21 17:23:50 字數 3459 閱讀 7528

越來越覺得有些基礎知識太重要了,最近在瘋狂的補回來,有的以前學了,現在淡忘了,有的當初學的就不好。

沒有關係,最近都開始補回來。應驗了那句話「出來混,遲早要還的。」

下面是我總結的一些基礎必備,如果大家覺得還需要補充哪些知識,還請提出來,我們一起補習。

bit位元

byte位元組

kb千位元組

mb兆位元組

gb千兆位元組

tb吉位元組

無符號整數

有符號正數

原碼正數的補碼

負數的補碼

補碼的絕對值(稱為真值)

補碼到真值(負數)的轉換

真值(負數)到補碼的轉換

符號位擴充套件

溢位無符號整數

有符號整數

邏輯運算

與:或:

非:異或:

ascii碼

float與

double的範圍和精度

1 範圍

2 精度

(位元,也稱位)是最小單位,0或1。

8個bit的寬度(即8條線路),可以表示28=256個不同的狀態(0000 0000-1111 1111)。

通常k個bit的組合可以表達2k

個不同狀態,每個狀態分別是k個0和1的bit序列組合。我們稱該0和1的序列為編碼,每個編碼對應乙個特定的值或狀態。

5表示為0000 0101

位元組,b,

乙個字母乙個位元組,乙個數字乙個位元組,乙個漢字兩個位元組

1byte=8bit

千位元組

1kb=210byte=1024b

兆位元組

1mb=210kb

千兆位元組

1gb=210mb

吉位元組

1tb=210gb

所有位都用來表示乙個數,沒有用來表示負數的位,所以只能表示正數。

有k個bit則可以表示2k

個無符號整數(從0到2k-1)。5-bit可以表示的數值範圍是0-31.

左邊第一位是符號位,0代表正數,1代表負數。

原碼(true form)是一種計算機

中對數字的二進位制

定點表示方法。原碼表示法在數值前面

增加了一位符號位(即最高位為符號位):正數該位為0,負數該位為1(0有兩種表示:+0和-0),其餘位表示數值的大小。

簡單直觀;例如,我們用8位二進位制表示乙個數,+11的原碼為00001011,-11的原碼就是10001011

原碼就是絕對值的二進位制,最前面加上乙個符號位表示正負。

與原碼相同。

【例1】+9的補碼是00001001。(備註:這個+9的補碼說的是用8位的2進製來表示補碼的,補碼表示方式很多,還有16位2進製補碼表示形式,以及32位2進製補碼表示形式等。)

負數的補碼是對其原碼逐位取反,但符號位除外;然後整個數加1。

同乙個數字在不同的補碼表示形式裡頭,是不同的。比方說-15的補碼,在8位2進製裡頭是11110001,然而在16位2進製補碼表示的情況下,就成了1111111111110001。在這篇補碼概述裡頭涉及的補碼轉換預設了把乙個數轉換 成8位2進製的補碼形式,每一種補碼表示形式都只能表示有限的數字。

【例2】求-7的補碼。

因為給定數是負數,則符號位為「1」。

後七位:-7的原碼(10000111)→按位取反(11111000)(負數符號位不變)→加1(11111001)

所以-7的補碼是11111001。

已知乙個數的補碼,求原碼的操作分兩種情況:

(1)如果補碼的符號位為「0」,表示是乙個正數,其原碼就是補碼。

(2)如果補碼的符號位為「1」,表示是乙個負數,那麼求給定的這個補碼的補碼就是要求的原碼。

再舉乙個例子:求-64的補碼

+64:01000000

11000000

【例4】-65的補碼是10111111

若直接將10111111轉換成十進位制,發現結果並不是-65,而是191。

事實上,在計算機內,如果是乙個二進位制

數,其最左邊的位是1,則我們可以判定它為負數,並且是用補碼表示。

若要得到乙個負二進位制數的絕對值(稱為真值),只要各位(包括符號位)取反,再加1,就得到真值。

如:二進位制值:10111111(-65的補碼)

各位取反:01000000

加1:01000001(+65的補碼)

忽略符號位,其他位取反,然後加1,算出除去符號位的值,加上負號。

先求絕對值的二進位制,然後取反,然後加1,然後第一位置1作為符號位,表示當前碼為負數。

在二進位制正數前面加任意多的0不會改變其值,在二進位制負數前面加任意多的1(符號位擴充套件sign extension)不會改變其值。我們稱這樣的操作為「符號擴充套件」。符號擴充套件主要用在另個不同長度的二進位制數相加的場合。

相加溢位表現為高位被隱藏,例如千年蟲問題。

有符號整數相加可能會導致最高位的符號位發生變化。

兩個正數相加的結果必然是正數,如果是負數,說明溢位了。兩個負數相加的結果必然是負數,如果是正數,說明溢位了。

事實上,只有在兩種同符號運算情況下,才會發生溢位。乙個正數和乙個負數相加,永遠不可能溢位。

非0為true,0為false。

二元運算子,只有兩個運算元同為1,結果為1,否則結果為0.

二元運算子,只要乙個運算元為1,結果為1,否則結果為0.

一元運算子,取反操作。

二元運算子,運算元相反,結果為1,否則結果為0.

8-bit編碼方式叫做ascii碼。

float和double的範圍是由指數的位數來決定的。

float的指數字有8位,而double的指數字有11位,分布如下:

float:

1bit(符號位)

8bits(指數字)

23bits(尾數字)

double:

1bit(符號位)

11bits(指數字)

52bits(尾數字)

於是,float的指數範圍為-127~+128,而double的指數範圍為-1023~+1024,並且指數字是按補碼的形式來劃分的。其中負指數決定了浮點數所能表達的絕對值最小的非零數;而正指數決定了浮點數所能表達的絕對值最大的數,也即決定了浮點數的取值範圍。

float的範圍為-2^128 ~ +2^128,也即-3.40e+38 ~ +3.40e+38;double的範圍為-2^1024 ~ +2^1024,也即-1.79e+308 ~ +1.79e+308。

float和double的精度是由尾數的位數來決定的。浮點數在記憶體中是按科學計數法來儲存的,其整數部分始終是乙個隱含著的「1」,由於它是不變的,故不能對精度造成影響。

float:2^23 = 8388608,一共七位,這意味著最多能有7位有效數字,但絕對能保證的為6位,也即float的精度為6~7位有效數字;

double

:2^52 = 4503599627370496

,一共16

位,同理,

double

的精度為

15~16位。

計算機基礎知識 計算機基礎知識彙總

計算機專業的那六大件 組成原理,作業系統,資料庫,編譯原理,計算機網路,資料結構,其次還得加上分布式的基礎知識,因為現在的系統都變成分布式的了。如果你是做應用層開發的,那幾門課程中的有些內容和日常工作關聯度不大,我挑那些最重要的來說一說,也算是乙個最小集合吧!1,計算機組成原理 如果你不是做作業系統...

計算機基礎知識 關於計算機的基礎知識

一 計算機發展 世界計算機 1 第一台計算機 eniac,1946年,美國研製的世界上第一台計算機,開闢了計算機技術的新紀元。2 計算機之父 馮 諾依曼參與eniac研究,提出計算機的二進位制 五大組成部分 程式控制。3 計算機發展階段 第一代電子管計算機 1946 1958年。第二代電晶體計算機 ...

計算機基礎知識

計算機5大組成單元 輸入單元 輸出單元 cpu內部的控制單元 算術邏輯單元 記憶體。單有cpu是無法運作計算機的,所以計算機還需要其他的介面裝置才能夠實際執行。很顯然,主機板是必不可少的,因為主機板負責把所有的裝置連線起來,讓所有的裝置能夠進行協調通訊。而主機板上面最重要的元件就是主板晶元組了!這個...