基礎練習 十六進製制轉八進位制

2021-09-22 10:00:05 字數 1421 閱讀 2982

給定n個十六進製制正整數,輸出它們對應的八進位制數。

輸入格式

輸入的第一行為乙個正整數n (1<=n<=10)。

接下來n行,每行乙個由0~9、大寫字母a~f組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度不超過100000。

輸出格式

輸出n行,每行為輸入對應的八進位制正整數。

【注意】

輸入的十六進製制數不會有前導0,比如012a。

輸出的八進位制數也不能有前導0。

樣例輸入239

123abc

樣例輸出

714435274

【提示】

先將十六進製制數轉換成某進製數,再由某進製數轉換成八進位制。

這道題,你想要做對,那麼你必須知道如何把十六進製制數轉換成八進位制數,我們首先就會想到找乙個過度數字:先將十六進製制數轉換成某進製數,再由某進製數轉換成八進位制。那麼這個數字是幾呢?嗯吶,二進位制是比較方便的。

十六進製制(一位變成四位)---->二進位制(三位變一位)--->八進位制

把十六進製制的數變成二進位制的數,就是把十六進製制數一位變成四位二進位制,不夠四位的前面補0(如1(16)--->1(2)--->0001(2) );

把二進位制的數變成八進位制的數,那麼就是從低位開始三位二進位制變成乙個八進位制數,最後的不夠三位就是前面補0變成三位(如1010101(2)--->001 010 101(2)--->125(8) );

例子:3

9(16)--->0011

1001(2)--->0

0011

1001(2)--->000

111001

(2)--->071(8)--->71(8);12

3abc(16)--->0001

0010

0011

1010

1011

1100(2)--->0001

0010

0011

1010

1011

1100(2)--

->000

100100

011101

010111

100(2)-->04435274(8)--->4435274(8);

#include#include#include#include#includeusing namespace std;

string s,ss;

int n;

string ans;

void bian()//二進位制轉換成八進位制;

}reverse(ss.begin(),ss.end());//記得再反轉回來;

bian();

return ;

}int main()

}return 0;

}

基礎練習 十六進製制轉八進位制

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

基礎練習 十六進製制轉八進位制

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

基礎練習 十六進製制轉八進位制

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