详述C语言整型、浮点型在内存中存储方式

本文详细阐述了C语言中整型数据的原码、反码、补码表示法以及大小端存储原理,通过实例帮助读者理解。同时介绍了浮点型数据遵循的IEEE 754标准,包括符号位、指数位和尾数位的存储结构,以及如何使用sizeof操作符获取浮点型变量的存储大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

整型

大家都知道,计算机存储数据采用的是二进制,C语言中,我们常常会涉及到三种不同的二进制表示方法:原码、反码和补码。在进入主题之前,我们先详细介绍这三种表示方法,并通过举例来帮助大家更好地理解这些概念以便后面的使用。

原码、反码、补码

首先,让我们来看一下原码是什么。原码是最常见的二进制表示方法,它直接将数值转换为二进制。例如,数字5的原码就是00000101,数字-5的原码就是10000101。我们可以注意到,负数的原码的最高位(第一位)为1,表示这是一个负数。

接下来,让我们来看一下反码是什么。反码是在原码的基础上进行转换得到的。正数的反码和原码相同,但是负数的反码是在原码的基础上,将每一位取反(即0变成1,1变成0)得到的。例如,数字5的反码就是00000101,数字-5的反码就是11111010。

最后,让我们来看一下补码是什么。补码也是在原码的基础上进行转换得到的。正数的补码和原码相同,但是负数的补码是在反码的基础上,将最后一位加1得到的。例如,数字5的补码就是00000101,数字-5的补码就是11111011。

现在,让我们来看一些例子,帮助大家更好地理解这些概念。

例1:计算数字5的原码、反码和补码。

数字5的原码:00000101数字5的反码:00000101数字5的补码:00000101

例2:计算数字-5的原码、反码和补码。

数字-5的原码:10000101数字-5的反码:11111010数字-5的补码:11111011

例3:计算数字-8的原码、反码和补码。

数字-8的原码:100001000数字-8的反码:11110111数字-8的补码:11111000

在不同的使用情况下规定的数据位数不同,在原码真实数据位不足时,往往采取在高位补0的方式,最高位依然为符号位。以32位数据为例。

例1:计算数字5的原码、反码和补码。

数字5的原码:0000 0000 0000 0000 0000 0000 0000 0101

数字5的反码:0000 0000 0000 0000 0000 0000 0000 0101

数字5的补码:0000 0000 0000 0000 0000 0000 0000 0101

例2:计算数字-5的原码、反码和补码。

数字-5的原码:1000 0000 0000 0000 0000 0000 0000 0101

数字-5的反码:1111 1111 1111 1111 1111 1111 1111 1010

数字-5的补码:1111 1111 1111 1111 1111 1111 1111 1011

例3:计算数字-8的原码、反码和补码。

数字-8的原码:1000 0000 0000 0000 0000 0000 0000 1000

数字-8的反码:1111 1111 1111 1111 1111 1111 1111 0111

数字-8的补码:1111 1111 1111 1111 1111 1111 1111 1000

希望这些例子能够帮助大家更好地理解原码、反码和

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值