C#計算機數據存儲原理

目錄

計算機數據的存儲

數據的存儲方式

存儲在什麼地方

怎樣存儲

進制之間的相互轉換

都有哪些進制

十進制轉換

任意進制之間的轉換

整數的存儲

原碼

反碼

補碼

十進制負整數轉二進制算法


計算機數據的存儲

數據的存儲方式

機器以正負電子的排列等方式來記錄二進制數據

排列?不同數量、不同排列順序

存儲在什麼地方

硬盤、內存

怎樣存儲

因爲目前計算機能夠存儲的數據只有兩個字符:0/1

這些硬件對於0/1的保存記錄主要是以哪種形式進行記錄------單元格方式記錄

  1. 每個單元格的單位是比特-bit

  2. 最小的字符單元是字節-byte 1byte=8bit

  3. kb 1kb=1024byte

  4. mb 1mb=1024kb

  5. gb

  6. tb

  7. pb

數據存儲的最終是二進制

計算機目前存儲的數據種類很多:數字、字母、漢字、符號

一個字符:指的是人類所能夠直接識別的一個單位,一個數字、一個字母、一個漢字、一個符號

01本質是數字所以計算機記錄各種數據都是將其最終轉爲數字進行記錄

進制之間的相互轉換

整數的存儲(字符集:UTF-8、Unicode、GB2312、BIG、GBK、ASCII......)

計算機起源於美國-賓夕法尼亞大學1946-馮·諾依曼

都有哪些進制

二進制:0,1,以0b開頭

八進制:0,1,2,3,4,5,6,7 以0開頭

十進制: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 以0x開頭

十進制轉換

  1. 十進制轉任意進制

給目標數字除以進制數,寫餘數,除到商爲0,餘數顛倒

例如:18轉二進制=0b10010

  1. 任意進制轉十進制

給數字進行從右至左進行編號(索引),每個位數乘以進制數的編號次方之和

例如:0b1010101=85

任意進制之間的轉換

利用8421碼

將每個二進制對應的位上計算一個固定的十進制數

1111

8421

  1. 二進制2位數組合

  2. 八進制3位數組合

  3. 十六進制4位數組合

例:

將0b1011101轉成8進制==》

001 011 101 l//

1 3 5 =135

轉成16進制

0101 1101

5 13 =5D

以十進制爲橋樑

x進制>十進制>y進制

整數的存儲

整數在計算機中存儲是以補碼的方式存儲的,想要知道補碼,必須先知道數字進制轉換和原碼和反碼。

原碼

將一個整數轉換成二進制,然後最高位用來表示符號位(0表示正數,1表示負數,其餘位表示數值位)

反碼

正數的反碼和原碼一致,負數的反碼位數全部取反,除最高位補碼

補碼

正數的補碼和原碼一致,負數的補碼在反碼的基礎上末尾+1

十進制負整數轉二進制算法

  1. 將十進制輸出轉化成二進制數,不管符號。

  2. 對轉化的二進制數逐位取反

  3. 對取反後的二進制數加1,結果就是十進制負數轉化成的二進制數

-122轉成2進制

  1. 先把122轉成二進制:計算機中存儲的是64bit的大小字節=8byte

    0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 0111 1010

  2. 對二進制逐位取反:

    1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1000 0101

  3. 取反後加1:

    1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1000 0110

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章