C语言进制转换

C语言进制转换

  1. 为什么使用二进制、八进制、十六进制?
    因为目前的CPU只能识别高低两种电平,只能对二进制数据进行计算
    二进制虽然能够直接被计算机识别,但是不方便人去书写和记录,因此就把二进制数据转换成八进制,方便记录到文档中
    随着CPU的位数的不断增加,已经到目前的64位,所以八进制不再能够满足需求,因此发展出现在的十六进制,由于历史原因八进制还不能退出历史舞台
  2. 十进制转二进制(其它进制)
    求余法
    用2不停地对数据求余,然后继续对商求余,直到商为0结束,在过程中得到的余数(逆序)就是该数据的二进制
    ​ 127 % 2 1
    ​ 63 % 2 1
    ​ 31 % 2 1
    ​ 15 % 2 1
    ​ 7 % 2 1
    ​ 3 % 2 1
    ​ 1 % 2 1
    ​ 0
    ​ 0111 1111
    求权法
    让数据从高位n位开始,数据 - 2^(n-1) ,如果够减,那么第n位为1,否则为0,直到减完为止
    134
    128 64 32 16 8 4 2 1
    1 0 0 0 0 1 1 0
  3. 二进制转十进制
    每位乘以权位2^(n-1),求和
    10011001 128+16+8+1
  4. 二进制转八进制
    从低位起,每三个二进制位对应一个八进制位
    二进制:10 101 110 111 100
    八进制:2 5 6 7 4
  5. 二进制转十六进制
    从低位起,每四个二进制位对应一个十六进制位
    二进制: 10 1011 1011 1100
    十六进制: 2 B B C
  6. 不同进制在程序的显示:
    在C代码中,以0开头的数据是八进制数据,以0x/0X开头的是十六进制数据
    %x 让数据以十六进制显示
    %o 让数据以八进制显示
    %#x %#o 显示出数据对应的进制前缀
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值