八進制轉二進制 C++實現


#include<iostream>
using namespace std;
int main()
{
    string s8;
    cin >> s8; //輸入八進制數
    int s2[1000];
    int j = 0;
   
    for (int i = s8.size() - 1;i >= 0;i--) { //八進制轉二進制
        int flag = 0;
        int a = s8[i] - 48;  //減48是因為要將字符串的ASCII碼轉為整數
        while (a != 0) {//輾轉相除
            s2[j] = a % 2;
            j++;
            flag++;
            a = a / 2;
        }
        if (flag < 3) { //每個八進制數可轉為3個二進制數,若轉換后為2位,則高位補0
            s2[j] = 0;
            j++;
        }
    }
        //轉換之后倒序輸出,若高位數為0,則不輸出
    int b = (s8.size() * 3) - 1;
    if (s2[b] != 0) cout << s2[b];
    for (int k = (s8.size() * 3)-2;k >= 0;k--) {
        cout << s2[k];
    }
    return 0;
}

 

二進制數轉換成八進制數:從小數點開始,整數部分向左、小數部分向右,每3位為一組用一位八進制數的數字表示,不足3位的要用“0”補足3位,就得到一個八進制數。

(具體用法如下圖)

   C=


免責聲明!

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



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