任何人都可以举一个C++代码的例子,它可以很容易地将十进制值转换为二进制值,二进制值转换为十进制值吗?十进制到二进制(反之亦然)
3
A
回答
21
那么,你的问题确实含糊不清,所以这个答案是一样的。
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;
}
这里是如何做到在纸上的转换:
2
strtol
会将一个像“011101”这样的二进制字符串转换为内部值(它通常也会以二进制形式存储,但您不需要担心太多)。正常转换(例如operator<<
与std:cout
)将给出相同的十进制值。
1
我假设你想要一个字符串二进制转换?
template<typename T> T stringTo(const std::string& s)
{
std::istringstream iss(s);
T x;
iss >> x;
return x;
};
template<typename T> inline std::string toString(const T& x)
{
std::ostringstream o;
o << x;
return o.str();
}
使用这些类似这样的:
int x = 32;
std:string decimal = toString<int>(x);
int y = stringTo<int>(decimal);
2
//The shortest solution to convert dec to bin in c++
void dec2bin(int a) {
if(a!=0) dec2bin(a/2);
if(a!=0) cout<<a%2;
}
int main() {
int a;
cout<<"Enter the number: "<<endl;
cin>>a;
dec2bin(a);
return 0;
}
相关问题
- 1. 如何将十进制转换成二进制,反之亦然
- 2. 十进制转换为二进制的转换,反之亦然在Python
- 3. 六十进制到的Vector3,反之亦然
- 4. 如何实现二进制到ASCII转换? (反之亦然)
- 5. 十进制到二进制(二进制)
- 6. 如何从十六进制翻译为摘要,反之亦然?
- 7. 转换字符串为十六进制,反之亦然
- 8. 转换UUID以十六进制字符串,反之亦然
- 9. 转换十六进制为INT,反之亦然
- 10. C++转换UTF8字符串为十六进制,反之亦然
- 11. 二进制到十进制
- 12. 将对象转换为二进制代码,反之亦然
- 13. 将二进制字符串反之亦然:扩展ASCII
- 14. 如何转换双/二进制,反之亦然?
- 15. 将二进制文件转换为字符串,反之亦然
- 16. 十六进制,八进制,二进制到十进制(C++)
- 17. 二进制,八进制,十六进制到十进制程序
- 18. 从十六进制到十进制,二进制到十进制和八进制到十进制程序C++
- 19. 二进制到十进制和十进制到二进制转换器
- 20. 编码/解码来自INT 14位到十六进制,并且反之亦然
- 21. ASCII到十进制,反之亦然,对于NASM中的多个字符
- 22. Java或C#六十进制/十进制转换,反之亦然,最好的方法是什么?
- 23. C#System.OverflowException二进制到十进制和十六进制转换
- 24. 将十六进制转换为二进制到十六进制?
- 25. 如何将数字(十进制)转换为二进制(二进制)数字和从二进制到十进制?
- 26. 十进制到二进制不工作
- 27. 二进制到十进制转换
- 28. 十进制到二进制Java方法
- 29. java二进制到十进制
- 30. 十进制到二进制转换
我们谈论的字符串? – 2010-03-30 20:03:49
以什么格式?字符串?数值类型不关心基数,因为它们都以二进制数据的形式存储,不管... – Amber 2010-03-30 20:04:03
名称中的“guru”部分来自哪里? ;-) – mjv 2010-03-30 20:04:49