八進位制與十六進製制的演算法

2021-07-31 08:58:40 字數 953 閱讀 5514

除了二進位制,程式設計中也經常使用八進位制和十六進製制。

八進位制有0~7共8個數字,基數為8,逢八進一,借一當八;十六進製制中,用a來表示10,b表示11,c表示12,d表示13,e表示14,f表示15,因此有0~f共16個數字,基數為16,逢16進1,借1當16。例如:

二進位制、八進位制、十進位制、十六進製制的對應關係

十進位制二進位制八進位制

十六進製制

十進位制二進位制

八進位制十六進製制00

0010101012a

1111

11101113b

21022

12110014c

31133

13110115d

410044

14111016e

510155

15111117f

611066

1610000

2010

711177

1710001

2111

81000108

1810010

2212

91001119

1910011

2313

在c語言中,八進位制通常以「0」開頭(注意是數字 0,而不是字母 o),例如 0307;十六進製制通常以「0x」或「0x」開頭(不區分大小寫),例如 0xe27 或 0x89f。

下面請看八進位制和十六進製制加法運算的兩個例子。

1) 八進位制加法:0107 + 0274 = 0403

圖1:八進位制加法運算

2) 十六進製制加法:0xa2b + 0x276 = 0xca1

圖2:十六進製制加法運算

十六進製制轉八進位制演算法

兩種解法 都需要中轉一次 第一種 十六轉十,十轉八.由於執行多次迴圈,當資料很大時,超時.include includeusing namespace std long long lc int a,int n 10 8 int a 10 int l sum int i 0 while l for i...

八進位制 十六進製制,補碼

為什麼需要八進位制和十六進製制?程式設計中,我們常用的還是10進製 必竟c c 是高階語言。比如 int a 100,b 99 不過,由於資料在計算機中的表示,最終以二進位制的形式存在,所以有時候使用二進位制,可以更直觀地解決問題。但,二進位制數太長了。比如int 型別占用4個位元組,32位。比如1...

十六進製制轉八進位制

時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定n個十六進製制正整數,輸出它們對應的八進位制數。輸入格式 輸入的第一行為乙個正整數n 1 n 10 接下來n行,每行乙個由0 9 大寫字母a f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。輸出格式 輸...