c++进制转换_必须知道的C语言知识细节:进制表示

e9942ef1c97fa7d3749ff638b34b7a31.png

C语言中表示数时经常提到二进制、八进制、十进制和十六进制表示。

为方便理解,先介绍十进制。

十进制:是指由0,1,2,3,4,5,6,7,8,9 十个数字表示的数,逢十进位,因此是十进制,可以看出十进制没有单独数字10,因为不需要,10可以用进1位表示。

同理:

二进制:是有0和1两个数字表示的数,逢2进位,所以二进制中不会出现2。

八进制:是指由0,1,2,3,4,5,6,7 八个数字表示的数,逢8进位。

十六进制:是指由0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F 十六个数字表示的数,其中英文字符(不区分大小写)A-F分别表示10-15。

C语言标准中,整数可以直接使用八进制、十进制、十六进制三种表示,二进制标准没有支持,但是部分编译器提供支持。

例如,对于自然数100,分别使用以上四种进制表示(tips:可以使用Windows自带的计算器-程序员模式作为工具,方便日常验算)

int i=100; // 十进制

int j=0144; // 八进制,首位必须是0表示

int k=0x64; // 十六进制表示,前缀必须是0x或0X

int m=0b01100100; // 二进制表示,前缀必须是0b或0B

注意:二进制表示,C标准未规定,部分编译器才能支持,不建议使用。

各种进制转换十进制数值:

十进制:

100= 110^2 + 010^1 + 0*10^0

其中102表示10的2次方,101表示10的1次方,以此类推。

八进制:

0144=18^2 + 48^1 + 4*8^0 = 100

十六进制:

0x64=616^1 + 416^0 = 100

二进制:

0b01100100= 02^7 + 12^6 +12^5 + 02^4 + 02^3 + 12^2 + 02^1 + 02^0

二进制和八进制、十六进制快速转换:

观察发现:每3个二进制数位可以转换成1个八进制数位,每4个二进制数位转换成1个十六进制数位。

例如:

二进制到八进制:

0b01100100 = 0b 01 100 100 = 144 = 0144 //加上前缀0

7b1cbf5a9810d1def0630ba764d64e32.png


u=1388808682,129218893&fm=26&gp=0.jpg

二进制到十六进制:

0b01100100 = 0b 0110 0100 = 64 = 0x64 // 加上前缀0x

其实做为一个学习者,有一个学习的氛围跟一个交流圈子特别重要这里我推荐一个C/C++基础交流583650410,不管你是小白还是转行人士欢迎入驻,大家一起交流成长。

eccdc930afa92e433f18a6a8328bab36.png

920fad790003c844b45c2fea2f468d41.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值