整数和浮点数在内存中存储

本文详细解释了整数(原码、反码和补码表示)在内存中的存储方式,以及浮点数(如float、double和longdouble)遵循的IEEE754标准,包括符号位、有效数字和指数的存储方法。32位和64位浮点数的具体储存规则也进行了说明。
摘要由CSDN通过智能技术生成

整数在内存中的存储

        整数的二进制以 原码 反码 补码 表示.

        三种表示方法均有符号位和数值位两部分,符号位用 0 表示正,用 1 表示 负,而数值位最高位的一位是被当作符号位,剩余的都是数值位.

        正整数的原 反 补码都相同

        负整数的三种表示方法各不相同

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

        反码:将原码的符号位不变,其他位依次按位取反就可以得到反码.

        补码:反码+1就得到补码

        对于整型来说:数据存放内存就是补码.

例如: 8的存放

        原码:00001000

        反码:00001000

        补码:00001000

          -8的存放

        原码:10001000

        反码:11110111

        补码:11111000

 浮点数在内存中的存储

        常见的浮点数 1.23 1E5等,浮点数家族包括:float double long double   ( 它们的范围在float.h中定义)

        它们的存储按照 IEEE754标准储存

V = (-1)^s * M * 2^E

(-1)^s 是符号位,当S = 0就是正数, 当S=1的时候就是负数

M 表示有效数字,M是大于等于1,小于2的

2E表示指数为位

        例如 5.0 = 101.0 = 1.01 * 2^2

               -5.0 = -101.0 = -1 * 1.01 * 2 ^ 2

        由IEEE 754规定

        32位的浮点数这样储存

         64位的浮点数这样储存

注意 : 

         在对E存储的时候,要加上中间值127,然后表示成二进制码储存 而储存M的时候,尾数要去整数部分,然后补齐0到23位

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值