C++ 进制转换
教程导读
学研发网的这篇信息学奥赛技术教程文章主要介绍了C++ 进制转换,现在分享给大家,供学习和参考。文章包含1655字,纯文字阅读大概需要5分钟。
教程信息
学习目标
掌握进制转换
掌握教程练习代码
掌握进制的转换和计算方法。
一、C++中常见进制的表示法
1、十进制(Decimal)
这是我们平常使用的数字系统,使用0到9
这10个数字表示数值。
例如:0、1、2、3、4、5、6、7、8、9。没有前缀或后缀,直接使用数字表示。
2、二进制(Binary)
这是由0和1
组成的数字系统。
每个二进制位(bit)只能表示0或1。二进制数的每个位代表一个权值,从右到左依次是2的0次方、2的1次方、2的2次方,依此类推。
例如:0b1010
表示十进制数10,其中0b
表示二进制数的前缀。
3、十六进制(Hexadecimal)
这是由0到9
以及字母A到F
组成的数字系统。
每个十六进制位可以表示0到15之间的数值。十六进制数的每个位代表一个权值,从右到左依次是16的0次方、16的1次方、16的2次方,依此类推。
例如:0xA
表示十进制数10,其中0x
表示十六进制的前缀。
A-10,B-11,C-12,D-13,E-14,F-15 或者(大小写一样) a-10,b-11,c-12,d-13,e-14,f-15
4、还有一个8进制(Octal)
是由于0到7
组成的数字系统,规律和上面的进制表示法类似。
在计算机中,通常用B
表示二进制、O
表示八进制、D
表示十进制、H
表示十六进制。
二、代码案例
练习:代码实现进制转换
如题
输入输出:
【输入描述】无 【输出描述】输出过程信息 【样例输入】无 【样例输出】看截图
参考代码:
int main() { // 十进制数 int d = 231; // 二进制数 0b 开头 int b = 0b101; // 八进制 0 开头 int o = 0753; // 十六进制数 0x 开头 int h = 0xd5c; //都会转换成10进制输出 cout << "十进制数: " << d << endl; cout << "二进制数: " << b << endl; cout << "八进制数: " << o << endl; cout << "十六进制数: " << h << endl; return 0; }
执行结果:
虽然在输出时显示的都是十进制数值,但是计算机会将数值转换为二进制进行处理,只是我们看不到而已。
三、进制转换
同学们要掌握十进制数、二进制数和十六进制数之间的转换。
比如给你一个十进制的数字27
,它对应的二进制是多少?它对应的十六进制是多少?
27的二进制是:11011 (1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 1*2^0) 27的十六进制是:1b (1*16^1 + 11*16^0) 2的n次方 2^0-1, 2^1-2, 2^2-4, 2^3-8, 2^4-16, 2^5-32, 2^6-64, 2^7-128, 2^8-258, 2^9-512, 2^10-1024
练习:练习进制转换。
如果给你的是二进制的数字,转换为十六进制呢?一般我们先转换为十进制,再做相应的转换。
输入输出:
【输入描述】无 【输出描述】输出转换后的结果 【样例输入】无 【样例输出】见截图
参考代码:
#include <iostream> #include <bitset> using namespace std; int main(){ int d = 27; cout << "27的10进制" << std::dec << d << endl; cout << "27的2进制: " << bitset<8>(d) << endl; //<8>:表示保留8位输出 cout << "27的16进制:" << std::hex << d << endl; cout << "27的8进制:" << std::oct << d << endl; return 0; }
执行结果:
教程咨询
如果章节内容看不懂,可以联系作者。
教程总结
以上是学研发网为您提供C++ 进制转换的全部内容,希望教程文章能够帮你了解学习C++ 进制转换,解决所遇到的问题。 如果觉得学研发网信息学奥赛教程内容还不错,欢迎将学研发网网站推荐给身边需要的人。
教程备注
版权声明:教程内容为学研发网整理和编写,如需转载请联系站长并附上文章原始链接和原始作者信息。
手机阅读
扫描二维码推送至手机访问。
本文链接:http://www.xueyanfa.com/xinaojiaocheng/xinaocpp-91.html