美文网首页
数据在内存中的存储方式

数据在内存中的存储方式

作者: jingr1 | 来源:发表于2017-10-04 20:25 被阅读0次

32位系统中char,int型数据在内存中的存储方式

  • 计算机中存储整型类数据采用的是补码。
  • 正数的补码与原码相同,负数的补码=反码+1 。
  • 反码:符号位不动,数值位按位取反。
  • 符号位:1表示负数,0表示正数
  • char也是一种整型类型,占1byte(8bit)它存储的是字符的ascii值,有符号字符类型[signed] char的数据表示范围为 -128(1000 0000) ~ 127,无符号字符类型unsigned char 的数据表示范围为 0 ~ 255。
    char
  • int 型占4byte(32bit),有符号[signed] int 数据范围为 -32768 ~32767,无符号unsigned int 数据范围为 0 ~ 65535
    int

浮点数在内存中的存储方式

  • float型实数在内存中占4个字节(32 bit),从低位到高位依次叫第0位到第31位。这32位可以分为3个部分:符号位(第31位),阶码(第30位到第23位共8位),尾数(最低23位)。
    1、符号位:0表示正数,1表示负数。
    2、阶码:表示该实数转化为规格化的二进制实数后的指数与127(127即所谓偏移量)之和, 规格化的二进制实数的指数只能在-127~ +127之间,所以,一个float型数的最大值在+2127即+3.4*1038,最小值在-2127即-3.4*1038。
    3、尾数:表示该实数转化为规格化的二进制实数后小数点以后的其余各位。
    float
  • double型与float型存储方式相同,只是所占的位数不同


    double

例如,将十进制178.125表示成机器内的32个字节的二进制形式.

  1. 将128.125表示成二进制数:(178.125)(十进制数)=(10110010.001)(二进制形式);
  2. 将二进制形式的浮点实数转化为规格化的形式:(小数点向左移动7个二进制位可以得到) 10110010.001=1.0110010001*2^7
  3. 符号位:该数为正数,故第31位为0,占一个二进制位.
    阶码:指数为7,故其阶码为127+7=134=(10000110)(二进制),占从第30到第23共8个二进制位.
    尾数: 为小数点后的部分, 即0110010001.因为尾数共23个二进制位,在后面补13个0,即01100100010000000000000
  4. 178.125在内存中的实际表示方式为:
    0 10000110 01100100010000000000000

将-0.15625表示成机器内的32个字节的形式.

  1. 将-0.15625表示成二进制形式: (-0.15625)(十进制数)=(-0.00101)(二进制形式);
  2. 将二进制形式的浮点数转化为规格化的形式:(小数点向右移动3个二进制位可以得到) -0.00101=-1.01*2^(-3)
  3. 符号位:该数为负数,故第31位为1,占一个二进制位;
    阶码:指数为-3,故其阶码为127+(-3)=124=01111100,占从第30到第23共8个二进制位;
    尾数: 小数点后的01,当然后面要补21个0;
  4. 0.15625在内存中的实际表示形式为:
    1 01111100 01000000000000000000000

相关文章

  • 4.数组、链表、散列表

    数据结构就是数据在内存中存储的一种方式,如果数据在内存中的存储是地址连续的,比如内存中从0到9的位置就用来存储1,...

  • 26.序列

    1.序列是数据的存储方式 序列在内存中是一块存储多个值的连续内存空间 在空间中存储的是数据的地址,而不是数据的值 ...

  • Redis 客户端基本操作

    Redis 是一个内存数据库,通过 Key-Value 键值对的方式存储数据由于 Redis 的数据都存储在内存中...

  • Java中集合类遍历性能

    集合元素在内存如何存放 数据元素在内存中,主要有2种存储方式:1、顺序存储,Random Access(或直接存储...

  • Python学习笔记3 数据存储和变量

    为什么会使用计算机? 存储数据,处理数据 数据存储位置?数据存在内存中 内存:用于暂时存储被处理的数据内存中数据的...

  • iOS数据存储方式(Core Data/Keycahin/NSU

    前言 在iOS开发中数据存储的方式可以归纳为磁盘缓存和内存缓存:磁盘缓存分为两类:文件、数据库存储。 文件存储:N...

  • 2017.8.9 编程范式(2)

    晚上看了各个数据类型在内存中的存储方式。笔记如下:

  • 数据在内存中的存储方式

    32位系统中char,int型数据在内存中的存储方式 计算机中存储整型类数据采用的是补码。 正数的补码与原码相同,...

  • PHP从入门到精通,046第四章PHP——PHP变量(DAY8第

    四、PHP变量 说明:在PHP中存储数据的一种方式,就是可以发生改变的量(数据——8种类型)这种方式是在内存中开辟...

  • 大小端模式

    在存储器中的数据存储方式有两种: 大端模式 小端模式 大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字...

网友评论

      本文标题:数据在内存中的存储方式

      本文链接:https://www.haomeiwen.com/subject/jrdtsxtx.html