大家好,欢迎来到IT知识分享网。
#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位,就得到一个八进制数。
(具体用法如下图)
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/32303.html