WAP将八进制转换为二进制

时间:2016-01-03 06:49:03

标签: c++

在将八进制数转换为二进制数的C ++程序中,我能够运行该程序,但问题是输出即将到来,

Enter number in octal: 1
1 in octal:1

但是我们知道八进制是一个3位数,那么如何将结果作为001呢? 有关信息,我声明了一个函数,并在函数定义中使用了'binary'(我声明的变量)的返回值。 我会将二进制变量声明为二进制变量[3]吗?或者如果没有,那么正确的方法是什么?

2 个答案:

答案 0 :(得分:1)

#include <iomanip>

cout << setfill('0') << setw(3) << binary

答案 1 :(得分:0)

如果前导零对你很重要......这可能就像是一个副本。参见&#34;如何在使用cout&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;运营商?&#34; How can I pad an int with leading zeros when using cout << operator?)。

无论如何,除了(尽管如此?)问题中缺少示例代码......: - )

我建议查看该帖子关于 printf()的答案,我发现它比cout格式更简洁。

试试这个(假设你的号码存储在名为&#39; i&#39;的变量中,相应调整):

B

这是获取一些printf格式信息的一个地方(很多):http://www.lix.polytechnique.fr/~liberti/public/computing/prog/c/C/FUNCTIONS/format.html

fyi - 在内部,你的整数已经是二进制的,并且已经可能每个都使用32位(或者64位)......这取决于它们是否被重击,int,long等等。所以我怀疑改变你的变量声明并不多。

这里的技巧是要理解printf(或cout,如果你愿意)生成字符来表示输出上的二进制数(i,above)。这就是为什么编译器要求你使用123表示十进制,0123表示八进制(不是前导零)和0x123表示十六进制,所以它可以将它们从源代码中的字符(或在运行时输入)转换为正确的二进制格式给定变量的记忆。