码迷,mamicode.com
首页 > 编程语言 > 详细

八进制转二进制 C++实现

时间:2020-04-18 22:40:22      阅读:79      评论:0      收藏:0      [点我收藏+]

标签:一个   二进制   输出   span   http   main   技术   pac   nbsp   

#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=

八进制转二进制 C++实现

标签:一个   二进制   输出   span   http   main   技术   pac   nbsp   

原文地址:https://www.cnblogs.com/sqm724/p/12728499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!