越來越覺得有些基礎知識太重要了,最近在瘋狂的補回來,有的以前學了,現在淡忘了,有的當初學的就不好。
沒有關係,最近都開始補回來。應驗了那句話「出來混,遲早要還的。」
下面是我總結的一些基礎必備,如果大家覺得還需要補充哪些知識,還請提出來,我們一起補習。
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是無法運作計算機的,所以計算機還需要其他的介面裝置才能夠實際執行。很顯然,主機板是必不可少的,因為主機板負責把所有的裝置連線起來,讓所有的裝置能夠進行協調通訊。而主機板上面最重要的元件就是主板晶元組了!這個...