給定n個十六進製制正整數,輸出它們對應的八進位制數。
輸入格式
輸入的第一行為乙個正整數n (1<=n<=10)。
接下來n行,每行乙個由09、大寫字母af組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。
輸出格式
輸出n行,每行為輸入對應的八進位制正整數。
將16進製制逐位轉換為4位2進製,然後再3位一組,轉換為8進製數
注意:如果字串的擷取與拼接以及採用合適的符合題意的方式輸出
完整**
#include
#include
#include
#include
#include
//用於實現string >> int
#include
//數學函式
#include
using
namespace std;
//首位填充0元素
string makeup
(string str,
int num)
else
return str;
}//2進製轉8進製
string bittooct
(string str)
str=
"\0"
;//字串清空
ss>oct;
ss.clear()
;//務必清除,否則會出錯
new_oct+
=oct;
//字串拼接
}else
str=str.
substr(0
,str.
length()
-3);
//刪除後三位
ss>oct;
ss.clear()
;//務必清除,否則會出錯
new_oct+
=oct;
//字串拼接}}
return new_oct;
}//16進製制轉換2進製,此處注意:不足4位補齊四位
string hextobit
(char c)
//倒置輸出
string indoutput
(string str)
else
}return oct;
}int
main()
cout<<
indoutput
(bittooct
(bit)
)/逆序輸出,
bit=
"\0"
;//bit清空
}}
2
76941fab
16645017653
----
----
----
----
----
----
----
----
process exited after 12.85 seconds with return value 0
關於進製的轉換,字元轉換後拼接尤為重要,而且得將他們先轉為2進製,而16>>2,一位變四位,2>>,3位變一位,其中關於不夠位的採取首項補0方式,這也是需要考慮到的。總之本次的進製轉換不是最優的,會在下一次完善,可累死我了。 將十進位制數M轉換為N進製數
題目描述 給定乙個十進位制數m,以及需要轉換的進製數n。將十進位制數m轉化為n進製數。exp 輸入 輸入為一行,m 32位整數 n 2 n 16 以空格隔開,如7,2。輸出 為每個測試例項輸出轉換後的數,每個輸出佔一行。如果n大於9,則對應的數字規則參考16進製制 比如,10用a表示,等等 如111...
將數字轉換為16進製制
給定乙個整數,寫乙個函式將其轉換為16進製制。對於負整數,需要使用二進位制補碼。樣例1 輸入 26 輸出 1a 樣例2 輸入 1 輸出 ffffffff 16進製制的所有字母 a f 必須為小寫。16進製制字串不能包含額外的前導0。如果數字為零,將它表示為單個字元 0 否則,16進製制數的第乙個字元...
c語言將十進位制數轉換為16進製制的函式
有3種方式實現,其中兩種是使用系統函式,另一種是直接自己編寫。使用系統函式實現要加入 include 自己編寫則不需要這個標頭檔案。下面的 就是3種方式的實現,包括2位的整數和任意整數 2的31次方以內 都可以。可自己選擇需要的實現方式。利用系統函式有 1.char itoa int value,c...