gpt4 book ai didi

c++ - 十进制转二进制(反之亦然)

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:53:42 24 4
gpt4 key购买 nike

谁能给出一个可以轻松地将十进制值转换为二进制值以及将二进制值转换为十进制值的 C++ 代码示例?

最佳答案

好吧,你的问题真的很模糊,所以这个答案是一样的。

string DecToBin(int number)
{
if ( number == 0 ) return "0";
if ( number == 1 ) return "1";

if ( number % 2 == 0 )
return DecToBin(number / 2) + "0";
else
return DecToBin(number / 2) + "1";
}

int BinToDec(string number)
{
int result = 0, pow = 1;
for ( int i = number.length() - 1; i >= 0; --i, pow <<= 1 )
result += (number[i] - '0') * pow;

return result;
}

当然,您应该检查溢出并进行输入验证。

x << 1 == x * 2

这里有一种转换为二进制的方法,它使用更“类似编程”的方法而不是“类似数学”的方法,因为缺乏更好的描述(尽管这两者实际上是相同的,因为这个只是替换除法通过右移,按位取模,并通过循环递归。不过,这是另一种思考方式,因为这很明显您正在提取各个位)。

string DecToBin2(int number)
{
string result = "";

do
{
if ( (number & 1) == 0 )
result += "0";
else
result += "1";

number >>= 1;
} while ( number );

reverse(result.begin(), result.end());
return result;
}

下面是如何在纸上进行转换:

  1. Decimal to binary
  2. Binary to decimal

关于c++ - 十进制转二进制(反之亦然),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2548282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com