進制之間的轉換
1.1 計算機硬體的基本認知
cpu: 中央處理器. 相當于人的大腦.運算中心,控制中心.
記憶體: 臨時存盤資料. 優點:讀取速度快, 缺點:容量小,造價高,斷電即消失.
硬碟: 長期存盤資料. 優點:容量大,造價相對低,斷電不消失, 缺點:讀取速度慢.
作業系統:統一管理計算機軟硬體資源的程式
1.2 計算機檔案大小單位
b = bit 位(位元)
B = Byte 位元組
1Byte = 8 bit #一個位元組等于8位 可以簡寫成 1B = 8b
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB
1EB = 1024PB
1.3 進制之間的轉換
二進制:由2個數字組成,有0 和 1 例: 0b101
八進制:由8個數字組成,有0,1,2,3,4,5,6,7 例: 0o127
十進制:有10個數字組成,有0,1,2,3,4,5,6,7,8,9 例: 250
十六進制:有16個數字組成,有0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f(字母大小寫都可以,分別代表10,11,12,13,14,15) 例:0xff 0Xff 0XFF
二進制轉十進制
#例: 0b10100101
運算:1* 2^0 + 0* 2^1 + 1* 2^2 + 0* 2^3 + 0* 2^4 + 1* 2^5 + 0* 2^6 + 1* 2^7=
1 + 0 + 4 + 0 + 0 + 32 + 0 + 128 = 165
八進制轉十進制
#例: 0o127
運算:78^0 + 28^1 + 1*8^2 = 7+16+64 = 87
十六進制轉十進制
#例: 0o127
運算:78^0 + 28^1 + 1*8^2 = 7+16+64 = 87
十進制轉2進制
426 => 0b110101010
運算程序: 用426除以2,得出的結果再去不停地除以2,
直到除完最后的結果小于2停止,
在把每個階段求得的余數從下到上依次拼接完畢即可
十進制轉8進制
426 => 0o652
運算程序: 用426除以8,得出的結果再去不停地除以8,
直到除完最后的結果小于8停止,
在把每個階段求得的余數從下到上依次拼接完畢即可
十進制轉十六進制
運算程序: 用426除以16,得出的結果再去不停地除以16,
直到除完最后的結果小于16停止,
在把每個階段求得的余數從下到上依次拼接完畢即可
二進制與八進制之間轉換
二進制與八進制對應關系:
八進制 二進制
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
二進制與十六進制轉換
十六進制 二進制
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
a 1010
b 1011
c 1100
d 1101
e 1110
f 1111
例:1010100101
十六進制:從右向左 4位一隔開 不夠四位用0補位 變成:
0010 1010 0101
0x2a5
八進制與十六進制之間轉換
先轉換成二進制 再去對應轉換
比如:0x2a5 轉換成 1010100101 再轉8進制 0o1245
1.4 原碼\反碼\補碼
# 1.原碼 或 補碼 都是二進制資料
原碼: 二進制的表現形式
反碼: 二進制碼0變1,1變0叫做反碼,[原碼][補碼]之間的轉換形式.(首位符號位不取反)
補碼: 二進制的存盤形式
資料用[補碼]形式存盤
資料用[原碼]形式顯示
[原碼] 和 [補碼] 可以通過[反碼]互相轉化,互為取反加1
# 2.提出補碼的原因
補碼的提出用于表達一個數的正負(可實作計算機的減法操作)
計算機默認只會做加法,實作減法用負號: 5+(-3) => 5-3
乘法除法:是通過左移和右移 << >> 來實作
# 3.[原碼]形式的正負關系:
原碼特點: 第一位是1
00000000 1 表達數字正1
10000000 1 表達數字負1
# 4.[補碼]形式的正負關系:
補碼特點: 高位都是1
00000000 1 表達數字正1
11111111 1 表達數字負1
# 5.運算順序:
補碼 -> 原碼 -> 最后人們看到的數
進制轉換的時候需要先把記憶體存盤的補碼拿出來變成原碼在進行轉換輸出
轉換規律:
如果是一個正數: 原碼 = 反碼 = 補碼
如果是一個負數: 原碼 與 補碼 之間 , 互為取反加1
原碼 = 補碼取反加1 給補碼求原碼
補碼 = 原碼取反加1 給原碼求補碼
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/544088.html
標籤:Python
上一篇:中文標題相似度檢測
