174 C語言入門 進製,補碼,型別

2021-10-19 05:21:34 字數 1982 閱讀 8721

進製以十進位制為例 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,則儲存資料如下:

標準C語言05 進製轉換 補碼反碼

進製轉換 為什麼使用二進位制 八進位制 十六進製制 因為現在的cpu只能識別高低兩種電流,只能對二進位制資料進行計算。二進位制資料雖然可以直接被cpu計算識別,但是不方便書寫 記錄,把二進位制資料轉換為八進位制是為了方便記錄在文件中。隨著cpu的位數不斷的增加,由早期的8位逐漸發展成了現在的64位,...

c語言入門(二)進製

cup 處理器 儲存器 記憶體 ram.rom.cache高速緩衝儲存器 用於存放當前處於活動狀態的程式和資料,即微機執行所需要的程式和資料,它與cpu之間進行頻繁的交換資料.外存 使用者可用於長期儲存程式 資料和檔案,有使用者管理外存中的shuju 上午 進製轉換,位運算,儲存資料 進製就是進製,...

C語言入門 資料型別

免費 整數 char short int long longlong 浮點型 float double long double 邏輯 bool 指標自定義型別 型別有何不同 型別名稱 int long double 輸入輸出的格式化 d ld lf 所表達的數的範圍 char記憶體所佔的大小 1個位...