資料的儲存與進位制轉換
python的發展史 http://www.cnblogs.com/vamei/archive/2013/02/06/2892628.html python的優缺點 http://blog.csdn.net/summerhust/article/details/6440953 python的應用場景 http://www.cnblogs.com/wgDream/p/6666763.html 資料的儲存及原理 資料儲存在記憶體,硬碟中 記憶體 記憶體是計算機中重要的部件之一,它是與CPU進行溝通的橋樑。計算機中所有程式的執行都是在記憶體中進行的,因此記憶體的效能對計算機的影響非常大。記憶體(Memory)也被稱為記憶體儲器,其作用是用於暫時存放CPU中的運算資料,以及與硬碟等外部儲存器交換的資料。只要計算機在執行中,CPU就會把需要運算的資料調到記憶體中進行運算,當運算完成後CPU再將結果傳送出來,記憶體的執行也決定了計算機的穩定執行。 記憶體是由記憶體晶片、電路板、金手指等部分組成的。 抽象原理 一個開關,有兩種狀態,開啟和關閉, 一種對應1,一種對應0, 把8個開關放到一間房子裡,可以稱這間房子為"一個位元組", 一個開關代表"一位", 每個房間都有門牌號,看作"地址" ,把無數個房間疊加起來組成摩天大樓,可以把摩天大樓看成記憶體 儲存單位
1.G = 1024M
2.M = 1024 k
3. 1k = 1024 byte
4. 1byte = 8bit
記憶體中以二進位制儲存資料 二進位制 0 1 逢二進一 八進位制 0 1 2 3 4 5 6 7 逢八進一 十進位制 0 1 2 3 4 5 6 7 8 9 逢十進一 十六進位制 0 1 2 3 4 5 6 7 8 9 a b c d e f 逢十六進一 進位制轉換 進位制的轉換:
十進位制轉換成二進位制:
10 — 1010
12 — 1100
倒敘法: 將十進位制的數除2取餘數, 而且一直除到值為0為止,然後將 餘數倒著排列
二進位制轉換成十進位制:
計算機計數一般是從 0 開始
1010 — 10
1100
從右往左數,將 每位的數值 * 2第幾次冪(從0開始計數) 然後累加運算就可以得到十進位制數
二進位制轉換成八進位制:
010 010 — 22
(劃分從右到左)
將3個二進位制數看成一個八進位制數
八進位制轉換成二進位制:
22 — 010 010
將一個八進位制數拆分成3個二進位制數
010 010
二進位制轉換成十六進位制:
十六進位制轉換成二進位制:
二進位制資料的儲存: 當一個數據需要儲存到硬碟/記憶體中時,需要先給該資料開闢一個記憶體空間,並給該記憶體空間分配一個編號(記憶體地址,一般用十六進位制的數表示)(方便找到資料),在程式開發時,一般整數用4個位元組表示,
00000000 00000000 00000000 00000001
1 + 1 = 2
00000000 00000000 00000000 00000001
+ 00000000 00000000 00000000 00000001
00000000 00000000 00000000 00000010
1 -2 = -1
計算機只會做加法運算
1 + (-2) = -1
二進位制的數用二進位制數的第一位(最左端)的數來表示符號位, 1表示該數是負數, 0 表示整數, 預設是0即預設是正數
-2 —> 10000000 00000000 00000000 00000010
加法運算:
1 + (-2) = -1
00000000 00000000 00000000 00000001
+ 10000000 00000000 00000000 00000010
10000000 00000000 00000000 00000011 –> -3 不對
原碼,補碼,反碼
原碼: 一個二進位制數既包含了符號位(正負數),又包含了數值的數為原碼
反碼: 一個正數的反碼是其原碼本身,負數的反碼是其符號位不變,其他位取反
用反碼進行加法運算:
1 + (-2) = -1
00000000 00000000 00000000 00000001
+ 11111111 11111111 11111111 11111101
11111111 11111111 11111111 11111110
—>計算後再取反 10000000 00000000 00000000 00000001 —> -1
1+(-1) = 0
00000000 00000000 00000000 00000001
11111111 11111111 11111111 11111110
11111111 11111111 11111111 11111111
–>結果取反10000000 00000000 00000000 00000000 —> -0 不對
正數的原碼,反碼,補碼 三碼合一
補碼: 正數的補碼是其本身,負數的補碼是其符號位不變,其餘位取反,在加1, 即反碼加1
1+(-1) = 0
00000000 00000000 00000000 00000001
11111111 11111111 11111111 11111111
1 00000000 00000000 00000000 00000000 溢位的捨棄, 0
取結果的補碼–>0
1 + (-2) = -1
00000000 00000000 00000000 00000001
11111111 11111111 11111111 11111110
11111111 11111111 11111111 11111111
資料儲存
計算機儲存資料,先開闢空間,再儲存資料,計算機開闢的最小單位是位元組
在儲存資料時,用最高位表示符號為,用0 表示正數, 1表示負數,其他的表示資料