進制
進制以十進制為例 1234.5=110^3 + 210^2 + 310^1 + 410^0 + 5*10^-1 (按權展開求和)
○1 其它進制轉十進制都是按權展開求和,比如十六進制 0x123=1 * 16^2 + 2 * 16^1 + 3 * 16^0
○2 十進制轉其它進制:整數部分:基數除法,倒序取余,小數部分:基數乘法,順序取整,
○3 十進制轉二進制:除了上面的方法,還可以湊,如下圖

○4 二進制轉八進制:二進制從右往左三個三個分組,然后按權展開求和

○5 二進制轉十六進制:二進制從右往左四個四個分組,然后按權展開求和,如下圖 0xBD2F

○6 十進制轉八,十六進制:先轉二進制再轉八或者十六進制
原碼、反碼、補碼是計算機中對數字的二進制表示方法,
原碼:將最高位作為符號位(0表示正,1表示負),其它數字位代表數值本身的絕對值的數字表示方式,
反碼:如果是正數,則表示方法和原碼一樣;如果是負數,符號位不變,其余各位取反,則得到這個數字的反碼表示形式,
補碼:如果是正數,則表示方法和原碼一樣;如果是負數,則將數字的反碼加上1(相當于將原碼數值位取反然后在最低位加1),
○1 無符號整型數:所有的數位均表示數值;
N 位無符號整型資料表示的取值范圍為:0~2^N-1 (2^N 表示 2 的 N 次方)
○2 有符號整型數:最高位 0 為正數,1 為負數
正數:原碼,反碼,補碼三者相同;
負數:其絕對值的二進制,取反,再加一,如下圖

○3 根據二進制計算數值,假設數字為 1 位元組
無符號數全部為數值位,按權展開求和,
1010 1000->1 * 2^7 + 1 * 2^5 + 1 * 2^3=168
有符號數,先看符號位確定符號,0 為正數,1 為負數,
如果為正數則按權展開求和,0101 1000->1 * 2^6 + 1 * 2^4 + 1*2^3=88
如果為負數則先確定符號,然后取反加一計算它的絕對值,1110 0101


0的反碼,補碼都為0
整形資料型別:

char:-128~127 共 256 種不同的數字,
unsigned char:0~255,
int:不加說明為 4 位元組,
注意資料的取值范圍,
浮點型別:

float:從左往右第一位為符號位,接來下 8 位為指數位,最后 23 位為尾數位

符號位 p:0 為正,1 為負
指數 e:讀取的指數=實際指數-127
尾數 m:不包含小數點左邊的 1
比如 12.5f->1100.1->1.1001*2^3,則存盤資料如下:

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/257103.html
標籤:其他
上一篇:二進制中1的個數問題 (超詳細)
