深入理解计算机系统之数据的表示与存储

本文探讨了计算机系统中数据的表示与存储,包括真值与补码的转换、整数的表示、IEEE 754标准下浮点数编码及数值存储的大端和小端模式。通过深入理解这些概念,有助于编写更高效、健壮的程序。
摘要由CSDN通过智能技术生成

前言

在编写程序的时候,不同数据类型进行转换和计算的时候总是可能出现各种各样奇怪的bug,所以深入的了解计算机系统中数据的表示与存储有利于我们编写高效与健壮的计算机程序,本文主要总结计算机系统中整数,浮点数的表示和存储。

真值与补码的相互转换

真值指的就是现实当中的正负数,而补码是计算机中表示真值的一种编码方式,也就是0/1编码的序列。


补码与真值的关系如下:

这里写图片描述 
其中n表示机器的字长,X是真值。


求真值的补码

正数的补码为其本身,负数的补码为正数的原码各位取反加1,简便的方法为从右到左遇到的第一个1的前面各位取反。

如:假设机器数为8位,+123的补码为01111011,-123的补码为10000101。


求补码的真值

公式为:

这里写图片描述

例子:

这里写图片描述

简便求法:

符号为0,则为正数,数值部分相同,符号为1,则为负数,数值各位取反再加1.

如:01010110的真值为1010110=64+16+4+2=86. 11010110的真值为-0101001=-(32+8+2)=-42.


整数的表示

整数分别无符号数和带符号数,带符号数中编码的最高有效位为1代表为负数,为0代表为整数。对于C编译器,如果一个表达式同时存在无符号数和带符号数,则会将带符号数强制转换成无符号数。无符号数通常在一个数的后面加一个”u”或者”U”。

如下面的例子:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值