1. 程式人生 > >資料的儲存與進位制轉換

資料的儲存與進位制轉換

    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表示負數,其他的表示資料