用正确的位大小在c++中将十进制转换为二进制
Convert Decimal to Binary in c++ with correct Bit Size
我正在编写一个程序,该程序接收用户输入的数字并将其存储到数组中。然后,程序将把这些值转换为十进制,并存储在一个新的数组中。我在将二进制值转换为正确的位大小时遇到问题。
例如,用户输入3
和4
。我的程序存储它们并将其转换为二进制,从而生成11
和100
。如何将其存储到011
和100
?
我相信我需要转换成一个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;
}
谢谢!!!
相关文章:
- C++:二进制到十进制w/转换过程的外观
- 十六进制到十进制转换的未清理答案
- 如何在C++中将二进制编码十进制转换为 int
- 以正确的顺序从十进制转换为二进制
- Arduino 十六进制到十进制转换
- 使用指数将十进制转换为二进制
- 从十进制转换为 BCD
- 使用堆栈将字符串格式的十进制转换为双精度
- 混乱将十进制转换为C 中的十六进制
- 使用位操作员将十进制转换为八十位
- 将长 64 位十进制转换为二进制
- 将十进制转换为十六进制,找不到我的逻辑错误
- 试图制作一个将十进制转换为二进制和ASCII C++的表
- 将字符串中的十进制转换为二进制时出错
- 用正确的位大小在c++中将十进制转换为二进制
- 在编译时将十进制转换为十六进制
- 为什么将十进制转换为二进制的递归方法比迭代、使用和返回字符串更快
- 将十进制转换为 32 位二进制
- 以最佳方式将十进制转换为二进制
- 使用分而治之的二进制到十进制转换