【C语言基础考研向】04整型进制转换

本文介绍了计算机中整型常量的二进制表示,详细解释了二进制如何转换为八进制和十六进制,以及内存中数据存储的小端模式。通过实例展示了整数123在内存中的十六进制表示和原因。
摘要由CSDN通过智能技术生成

整型常量的不同进制表示

  计算机中只能存储二进制数,即0和1,(而在对应的物理硬件上则是高、低电平。为了更方便地观察内存中的二进制数情况,除我们正常使用的十进制数外,计算机还提供了十六进制数和八进制数

  下面介绍不同进制数的对应关系。

  首先,在计算机中,1字节为8位,1位即二进制的1位,它存储0或1。int 型常量的大小为4字节,即32位。

  设有二进制数0100 1100 0011 0001 0101 0110 1111 1110,其最低位是2的零次方,代表数值的最高位是2的30次方,最高位为符号位,符号位为1时是补码,将在高级阶段的补码部分讲解。

  上面的二进制数对应的八进制数是011414253376,它以0开头标示,数位的变化范围是0~7。二进数转换为八进制数的方式是,对应的二进制数每3位转换为1位八进制数。首先将上面的二进制数按每3位隔开,得到01 001 100 001 100010 101011 011 111110,然后每3位对应0~7范围内的数进行对应转换,得到八进制数011414253376。由于实际编程时,识别八进制数时前面需要加0,所以在前面加了一个0。

  上面的二进制数对应的十六进制数是Ox4C3156FE,它以0x开头标示,数位的变化范围是0~9和A~F,其中A代表10,F代表15,对应的二进制数每4位转换为1位十六进制数。十六进制在观察内存时需要频繁使用

  上面的二进制数对应的十进制数是1278301950,具体计算需要以2的幂次相加依次来计算,是21+22+23+…230来实现(为1的位置就需要2的幂次,为零不需要),最好通过计算器来进行.

  目前我们执行到语句 int i=123,变量i会在内存上被分配空间,大小为4字节,会看到如下图所示,其中i的值变为7b(我们以十六进制方式查看内存),其十进制值为7×16+11=123,i的值是0x0000007b.为什么显示结果为7b 00 00 00呢?原因是英特尔的CPU采用了小端方式进行数据存储,因此低位在前、高位在后.
在这里插入图片描述

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐要考研

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值