c语言--二进制和其他进制之间的转换

目录

  • 一、前言
  • 二、二进制、十进制、十六进制、八进制的组成
    • 2.1二进制的组成
    • 2.2十进制的组成
    • 2.3八进制的组成
    • 2.4十六进制的组成
  • 三、二进制转换为十进制
    • 3.1 二进制转换为十进制
    • 3.2十进制转换为二进制
  • 四、二进制转八进制和十六进制
    • 4.1二进制转八进制
    • 4.2二进制转换为十六进制
  • 五、总结

一、前言

其实我们经常能听到2进制、8进制、10进制、16进制这样的讲法,那是什么意思呢?其实2进制、8进制、10进制、16进制是数值的不同表示形式而已。
比如:数值15的各种进制的表表示形式:

152进制:1111
158进制:17
1510进制:15
1516进制:F

二、二进制、十进制、十六进制、八进制的组成

2.1二进制的组成

由0、1两个数字组成

2.2十进制的组成

由0~9数字组成组成

2.3八进制的组成

由0~7数字组成

2.4十六进制的组成

0~9、a、b、c、d、e、f

三、二进制转换为十进制

其实10进制的123表示的值是⼀百⼆⼗三,为什么是这个值呢?其实10进制的每⼀位是权重的,10进制的数字从右向左是个位、⼗位、百位…,分别每⼀位的权重是 10的0次方,10的一次方,10的二次方…如下图:
c语言--二进制和其他进制之间的转换_第1张图片

3.1 二进制转换为十进制

如果是2进制的1101,该怎么理解呢?
c语言--二进制和其他进制之间的转换_第2张图片

3.2十进制转换为二进制

c语言--二进制和其他进制之间的转换_第3张图片

四、二进制转八进制和十六进制

4.1二进制转八进制

八进制的数字每⼀位是0~7的数字,各⾃写成2进制,最多有3个二进制位就足够了,比如7的⼆进制是111,所以在2进制转8进制数的时候,从2进制序列中右边低位开始向左每3个2进制位会换算⼀个8进制位,剩余不够3个2进制位的直接换算。
如:二进制的01101011,换成八进制:0153,0开头的数字,会被当做八进制。
c语言--二进制和其他进制之间的转换_第4张图片

4.2二进制转换为十六进制

十六进制的数字每⼀位是0~9,a ~f 的,0~9,a ~f的数字,各自写成二进制,最多有4个二进制位就足够了,比如 f 的⼆进制是1111,所以在二进制转十六进制数的时候,从二进制序列中右边低位开始向左每4个二进制位会换算⼀个十六进制位,剩余不够4个⼆进制位的直接换算。
如:二进制的01101011,换成十六进制:0x6b,十六进制表示的时候前面加0x。
c语言--二进制和其他进制之间的转换_第5张图片

五、总结

c语言--二进制和其他进制之间的转换_第6张图片
c语言--二进制和其他进制之间的转换_第7张图片
欧耶!!!!!!我学会啦!!!!

你可能感兴趣的:(#,c语言,c语言,开发语言)