C++ 十进制转八进制和十六进制
1. 前言
在计算机编程中,数据的表示方式有多种,其中最常见的是十进制、八进制和十六进制。在C++中,我们可以使用相应的函数或方法将一个十进制数转换为八进制和十六进制形式。本文将详细介绍如何在C++中进行这些转换,并给出相应的示例代码和运行结果。
2. 十进制转八进制
以十进制数37为例,我们将其转换为八进制数的方法如下:
- 用37除以8,得商4余5
- 再将4除以8,得商0余4
所以,十进制数37在八进制中表示为45。在C++中,可以使用std::oct
流操纵符来将十进制数转换为八进制数。下面是示例代码:
#include <iostream>
int main() {
int decimalNumber = 37;
std::cout << "十进制数 " << decimalNumber << " 转为八进制为 " << std::oct << decimalNumber << std::endl;
return 0;
}
运行结果:
十进制数 37 转为八进制为 45
3. 十进制转十六进制
以十进制数157为例,我们将其转换为十六进制数的方法如下:
- 用157除以16,得商9余13(其中余数13可以表示为十六进制中的D)
- 再将9除以16,得商0余9
所以,十进制数157在十六进制中表示为9D。在C++中,可以使用std::hex
流操纵符来将十进制数转换为十六进制数。下面是示例代码:
#include <iostream>
int main() {
int decimalNumber = 157;
std::cout << "十进制数 " << decimalNumber << " 转为十六进制为 " << std::hex << decimalNumber << std::endl;
return 0;
}
运行结果:
十进制数 157 转为十六进制为 9d
需要注意的是,转换后的十六进制数中的字母会自动转换为小写形式。如果需要转换为大写形式,可以使用std::uppercase
流操纵符。下面是修改后的代码:
#include <iostream>
int main() {
int decimalNumber = 157;
std::cout << "十进制数 " << decimalNumber << " 转为十六进制为 " << std::hex << std::uppercase << decimalNumber << std::endl;
return 0;
}
运行结果:
十进制数 157 转为十六进制为 9D
4. 总结
在C++中,使用std::oct
和std::hex
流操纵符可以方便地将十进制数转换为八进制和十六进制数。通过对相应的转换方法和示例代码的学习,我们可以更好地理解C++中的数值转换。