用正确的位大小在c++中将十进制转换为二进制

Convert Decimal to Binary in c++ with correct Bit Size

本文关键字:十进制 转换 二进制 c++      更新时间:2023-10-16

我正在编写一个程序,该程序接收用户输入的数字并将其存储到数组中。然后,程序将把这些值转换为十进制,并存储在一个新的数组中。我在将二进制值转换为正确的位大小时遇到问题。

例如,用户输入34。我的程序存储它们并将其转换为二进制,从而生成11100。如何将其存储到011100

我相信我需要转换成一个char数组或某种字符串,但我不知道应该遵循什么步骤。

我想你要做的是:

void Convert(int Number, char *Array, int Bits) {
   int Bit;
   for (Bit = 0; Bit < Bits; Bit++) {
      if ((Number & (1 << (Bits - (Bit + 1)))) > 0) {
         Array[Bit] = '1';
      } else {
         Array[Bit] = '0';
      }
   }
}

我做了和下面给出的几乎相同的事情:

你可以试试这个。

//Decimal to Binary
char* dTb(int num, unsigned bit)
{
    char *binStr = new char (bit + 1);
    int len = bit;
    binStr[bit] = '';
    while (bit--)   binStr[bit] = '0';
    if (num == 0)
        return binStr;
    int r;
    while (num && len)
    {
        r = num % 2;
        binStr[--len] = r + '0';
        num /= 2;
    }
    return binStr;
}

谢谢!!!