c++ 将十进制数转换为二进制数

哈利勒·卡杜拉

此代码查找十进制整数 N 的二进制;它将数字除以 2 并取结果的下限并将其也除以 2,
代码获取这些除法的余数 0 或 1 并构建二进制。

这段代码的问题是它直到最后一个除法示例才会运行(取 128,最后一个除法是 1/2,余数是 1,程序N/2 > 0在 while 循环中指定的位置停止,1/2 = 0因为 1 是 int 类型) .

如何解决此问题或如何修改 while 循环中的条件?

#include <iostream>
using namespace std;
void ConvertToBinary(int N);
int main()
{
    int N = 1;
    while (1)
    {
        cout << "enter N: ";
        cin >> N;
        cout << endl;
        ConvertToBinary(N);
        cout << endl;
    }
    system("pause");
    return 0;
}
void ConvertToBinary(int N)
{
    int A[1000];
    int i=0;
    cout << "The binary of " << N << "= ";
    while (N / 2 > 0)
    {
        if (N % 2 == 0)
        {
            A[i] = 0;
        }
        else if (N % 2 != 0)
        {
            A[i] = 1;
        }
        N = N / 2;
        i++;
    }
    for (int j= i-1 ; j>=0 ; j--)
    {
        cout<<A[j];
    }


    cout << endl;

}
轨道上的亮度竞赛

N不是“十进制整数”。它是一个数字

如果你真的想谈论细节,它已经以二进制形式存储了。

你说的是代表打印到屏幕上时数字表示什么默认情况下,IOStreams 会以十进制显示数字。

不过,您可以使用 I/O Manipulators 来选择十六进制或八进制。遗憾的是还std::bin没有,但我们可以将其std::bitset用于相同的目的:

#include <iostream>
#include <iomanip>
#include <bitset>

int main()
{
    int x = 42;
    std::cout << x << '\n';
    std::cout << std::hex << x << '\n';
    std::cout << std::oct << x << '\n';
    std::cout << std::bitset<sizeof(x)>(x) << '\n';
}

// Output:
//   42
//   2a
//   52
//   1010

现场演示

而且您的整个方法(通过将您的数字更改为另一个数字来“伪造”表示转换,当您以十进制表示形式打印时,该数字恰好看起来像原始数字的二进制表示 - 呸!)变得过时了,可以毫不费力地解决您的问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将十进制数转换为二进制Objective-C

来自分类Dev

在C ++中从二进制转换为十进制数

来自分类Dev

Arduino C / C ++将二进制字符串转换为十进制

来自分类Dev

如何将十进制转换为二进制C#(4位)

来自分类Dev

C将十进制scanf输入转换为二进制数组

来自分类Dev

将十进制转换为二进制的C ++程序出现分段错误

来自分类Dev

将十进制转换为二进制错误(C)

来自分类Dev

将十进制转换为二进制的C ++循环的逻辑是什么

来自分类Dev

C ++从字符串输入将二进制转换为十进制

来自分类Dev

十进制到二进制转换C ++

来自分类Dev

我正在使用C ++应用程序将二进制转换为十进制数字

来自分类Dev

如何使用堆栈在C编程中将十进制转换为二进制

来自分类Dev

如何在C++中将二进制编码的十进制转换为int

来自分类Dev

二进制字符串到c中的十进制数

来自分类Dev

在 C 中将十进制转换为二进制时遇到问题。没有输出

来自分类Dev

使用c ....中的字符串将十进制转换为二进制...陷入某些概念错误

来自分类Dev

需要帮助将二进制数转换为C中的字符串

来自分类Dev

将浮点数转换为C并显示二进制数

来自分类Dev

C ++二进制到十进制

来自分类Dev

C ++二进制到十进制?

来自分类Dev

C ++二进制到十进制?

来自分类Dev

C ++中的二进制到十进制

来自分类Dev

十进制转二进制的C程序

来自分类Dev

简单的二进制到十进制转换器-C#中的问题

来自分类Dev

十进制到二进制的转换方法Objective-C

来自分类Dev

C ++二进制到十进制和反向转换器

来自分类Dev

将C中的十六进制转换为十进制数

来自分类Dev

将前导零添加到二进制数组C的十进制

来自分类Dev

将二进制数转换为十六进制的C程序,如果它们等于十六进制字母,则不能转换两个以上的二进制数

Related 相关文章

  1. 1

    将十进制数转换为二进制Objective-C

  2. 2

    在C ++中从二进制转换为十进制数

  3. 3

    Arduino C / C ++将二进制字符串转换为十进制

  4. 4

    如何将十进制转换为二进制C#(4位)

  5. 5

    C将十进制scanf输入转换为二进制数组

  6. 6

    将十进制转换为二进制的C ++程序出现分段错误

  7. 7

    将十进制转换为二进制错误(C)

  8. 8

    将十进制转换为二进制的C ++循环的逻辑是什么

  9. 9

    C ++从字符串输入将二进制转换为十进制

  10. 10

    十进制到二进制转换C ++

  11. 11

    我正在使用C ++应用程序将二进制转换为十进制数字

  12. 12

    如何使用堆栈在C编程中将十进制转换为二进制

  13. 13

    如何在C++中将二进制编码的十进制转换为int

  14. 14

    二进制字符串到c中的十进制数

  15. 15

    在 C 中将十进制转换为二进制时遇到问题。没有输出

  16. 16

    使用c ....中的字符串将十进制转换为二进制...陷入某些概念错误

  17. 17

    需要帮助将二进制数转换为C中的字符串

  18. 18

    将浮点数转换为C并显示二进制数

  19. 19

    C ++二进制到十进制

  20. 20

    C ++二进制到十进制?

  21. 21

    C ++二进制到十进制?

  22. 22

    C ++中的二进制到十进制

  23. 23

    十进制转二进制的C程序

  24. 24

    简单的二进制到十进制转换器-C#中的问题

  25. 25

    十进制到二进制的转换方法Objective-C

  26. 26

    C ++二进制到十进制和反向转换器

  27. 27

    将C中的十六进制转换为十进制数

  28. 28

    将前导零添加到二进制数组C的十进制

  29. 29

    将二进制数转换为十六进制的C程序,如果它们等于十六进制字母,则不能转换两个以上的二进制数

热门标签

归档