您好,欢迎来到画鸵萌宠网。
搜索
您的当前位置:首页数据在内存中的存储(详细版)

数据在内存中的存储(详细版)

来源:画鸵萌宠网

一、 数据类型介绍

1.整形家族:

unsigned:无符号数类型

当一个数是无符号类型时,那么其最高位的1或0,和其它位一样,用来表示该数的大小。

signed:有符号数类型

当一个数是有符号类型时,最高数称为“符号位”。符号位为1时,表示该数为负数,为0时表示为正数。

注意:有符号类型可以表示正数,负数或0,无符号类型仅能表示大于等于0的值

2.浮点型家族:

float
double

注意:浮点型无unsigne

二、整形在内存中的存储

在学习原码、反码、补码之前,我们需先了解机器数真值的概念

1、机器数

一个数在计算机中的二进制表示形式,叫做这个数的机器数。机器数是带符号的,在计算机中 用机器数的最高位存放符号,正数为0,负数为1。

例如:
    + 3的机器数:0000 0011
     - 3的机器数:1000 0011

2、 真值

因为第一位是符号位,所以机器数的形式值就不等于真正的数值。所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。

例如:
    0000 0001的真值 = +000 0001 = +1
    1000 0001的真值 = –000 0001 = –1

2.1 原码、反码、补码

对于一个数,计算机要使用一定的编码方式进行存储,原码、反码、补码是机器存储一个具体数字的编码方式。

三种方式均有符号位数值位两部分,符号位都是0表示“正数”,1表示“负数”,而数值位分正负数而定。

正数的原码、反码、补码都相同,负数的原码、反码、补码各不相同

1、原码

直接将数值按照正负数的形式翻译成二进制就可以得到原码

+5的原码:00000000 00000000 00000000 00000101
-5的原码:10000000 00000000 00000000 00000101

2、 反码
将原码的符号位不变,其他位次按位取反
即:0变为1,1变为0

+5的反码:00000000 00000000 00000000 00000101
-5 的反码:11111111 11

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo8.com 版权所有 湘ICP备2023022238号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务