給定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組成的字串,表示要轉換的十六進製制正整數,每個十六進製制數長度...