十六進制轉八進制


今天的題好像有些難了,但是學到了新的知識,進制轉換,雖然還搞得不太明白。

二進制轉八進制:1.取一合三法 2,添0補0

補上今天的題(一定不能把cout<<endl;關起來這樣會影響換行)

 1 #include<iostream>
 2 #include<string>
 3 using namespace std;
 4 
 5 int n;
 6 int i;
 7 string b1,b2;
 8 
 9 int main()
10 {
11     cout<<"請輸入n的值:"<<endl;
12     cin>>n;
13     for(i=0;i<n;i++)
14     {
15         cin>>b1;
16         b2="";
17     for(int j=0;j<b1.length();j++)
18         {
19             switch(b1[j])
20             {
21             case'0':
22                 b2+="0000";break;
23             case'1':
24                 b2+="0001";break;
25             case'2':
26                 b2+="0010";break;
27             case'3':
28                 b2+="0011";break;
29             case'4':
30                 b2+="0100";break;
31             case'5':
32                 b2+="0101";break;
33             case'6':
34                 b2+="0110";break;
35             case'7':
36                 b2+="0111";break;
37             case'8':
38                 b2+="1000";break;
39             case'9':
40                 b2+="1001";break;
41             case'A':
42                 b2+="1010";break;
43             case'B':
44                 b2+="1011";break;
45             case'C':
46                 b2+="1100";break;
47             case'D':
48                 b2+="1101";break;
49             case'E':
50                 b2+="1110";break;
51             case'F':
52                 b2+="1111";break;
53             default:break;
54             }
55         }
56    if(b2.length()%3==1)
57        b2="00"+b2;
58    if(b2.length ()%3==2)
59        b2="0"+b2;
60    int flag=0;
61    for(int g=0;g<b2.length()-2;g+=3)
62    {
63     int p=4*(b2[g]-'0')+2*(b2[g+1]-'0')+b2[g+2]-'0';
64     if(p)
65         flag=1;
66     if(flag)
67         cout<<p;
68    }
69       cout<<endl;
70         
71     }
72     return 0;
73 }

 題目:

十六進制轉八進制
 
問題描述
給定 n 個十六進制正整數,輸出它們對應的八進制數。
輸入格式
輸入的第一行為一個正整數 n (1<=n<=10)。
接下來 n 行,每行一個由 0~9、大寫字母 A~F 組成的字符串,表示要轉換的十六進制正
整數,每個十六進制數長度不超過 100000。
輸出格式
輸出 n 行,每行為輸入對應的八進制正整數。
注意
輸入的十六進制數不會有前導 0,比如 012A。
輸出的八進制數也不能有前導 0。
樣例輸入
2
39
123ABC
樣例輸出
71
4435274
提示
先將十六進制數轉換成某進制數,再由某進制數轉換成八進制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM