1.大小端模式(字节序)

  • 大小端的概念:数在内存中分字节存储的先后顺序。大端模式即数的低位存在高地址,高位存在低地址当中。而小端模式相反,低位存在低地址,高位存在高地址。比如0x1234,这里的高低位是从左往右的。0x12是高位,0x34是低位。

      1)大端模式:

低地址 -----------------> 高地址
0x12  |  0x34  |  0x56  |  0x78

       2)小端模式:

低地址 ------------------> 高地址
0x78  |  0x56  |  0x34  |  0x12

       3)常见大小端模式

一般操作系统都是小端,而通讯协议是大端的。

Big Endian : PowerPC、IBM、Sun
Little Endian : x86、DEC
ARM既可以工作在大端模式,也可以工作在小端模式。

  • 如何判断大小端程序:
BOOL IsBigEndian()
{int a = 0x1234;char b =  *(char *)&a;  //取a的地址,将其强制转换为char指针类型,取这个地址中的值,相当于去低地址的存的值

    if( b == 0x12){return TRUE;}return FALSE;
}

BOOL IsBigEndian()
{union NUM{int a;char b;}num;num.a = 0x1234;if( num.b == 0x12 ){return TRUE;}return FALSE;
}

第二种方法利用联合的性质,共享一段内存,以达到节省空间的目的,只存储最大长度的变量。当给a赋值的时候,a和b的起始地址是一样的,它们共享一段内存,取出b段的数字低地址若存的是高位,那么是大端模式。

  • 大小端之间的转换

主要思想是取出每个字节,然后将字节移动左移或右移。

#define BigtoLittle16(A)   (( ((uint16)(A) & 0xff00) >> 8)|(( (uint16)(A) & 0x00ff) << 8))

参考资料:http://blog.csdn.net/ce123_zhouwei/article/details/6971544

2.数据在内存中的存储

  • 2.1.原码,反码,补码。

把一个数转换为二进制在其前面添加符号位,0为正数,1为负数。称为原码。

正数的反码是自身,负数的反码是保持符号位不变,其余位取反。

补码正数还是不变,负数是补码+1。若是8位这补码的范围是[-128,127],其中-128为10000000,就不存在源码中-0情形。

更详细的解释:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html

  • 2.2.浮点数在计算机中的存储。

浮点数存在小数点,但是计算机无法表示小数点,解决的方法是采用指数(科学计算法)的方式来表示,使得整数部分固定为1,这样浮点数就可以分成三个部分来表示,第一个部分是符号位,第二部分是指数位,第三部分是小数位。

例:以32位的浮点数为例说明一下

求129.5在计算机中的存储

先将整数和小数部分分别表示为二进制10000001.1,用科学计算法表示,1.00000011*2^7,符号位0,指数部分为7加上偏移127为134,二进制为10000110,小数部分为10000000000000000000000(23位),结果为01000011010000000000000000000000

sign:1位,正数为0,负数为1.

exponet:8位,要加上127(为了表示那些指数为负数的浮点数),再转换为二进制。

fraction:23位,小数部分。

转载于:https://www.cnblogs.com/dawnminghuang/p/3998938.html

数据在计算机中的存储相关推荐

  1. 数据在计算机中的存储形式和运算

    一.数据概述 以C语言为例,里面所有的基本数据类型,都是以符合人类世界和自然世界的逻辑而出现的.比如说int,bool,float等等.这些数据类型出现的目的,是更于让人容易理解,可以说,这些数据类型 ...

  2. 数据在计算机中的存储方式

     数据有数值型和非数值型两类,这些数据在计算机中都必须以二进制形式表示.一串二进制数既可表示数量值,也可表示一个字符.汉字或其他.一串二进制数代表的数据不同,含义也不同.这些数据在计算机的存储设备 ...

  3. 数据在计算机中存储形式

    数据在计算机中存储形式 考虑到使用二进制等等进行编程,需要了解数据在计算机中的存储形式. 数据在计算机中都是以二进制码存储的. 对于数,是以二进制的补码存储的. 对于有符号的数,其范围是-128~12 ...

  4. 在计算机中常用的数据表示方法有哪些,数据在计算机中的表示方法

    1,2020/5/25,数据在计算机中的表示方法,2,2020/5/25,教学目标:了解计算机内部信息用什么进制表示,为什么要采用这种进制:掌握数制之间的转换,了解存储中几个概念及数据的编码重点及难点 ...

  5. 【转载】数据在计算机中是如何存储的

    hello,小伙伴们好,我是江湖人送外号[道格牙]的子牙老师. 有几天没更新文章了哈.因为手写JVM小班已经开课了,需要花时间备课,录视频试讲,解答学员问题-比较耗时间.今天就来一篇超实用超硬核的文章 ...

  6. 数据在计算机中是如何存储的

    hello,小伙伴们好,我是江湖人送外号[道格牙]的子牙老师. 这篇文章,咱们讨论的问题是数据在计算机中是如何存储的.为什么要讨论这个问题呢?因为在手写JVM的过程中,我们需要实现所有的数据类型,比如 ...

  7. C语言中整型在计算机中的存储

    一 . 整型的表示 1.字面值后面加上L(l)表示long长整型 2.字面值后面加上U(u)表示usigned整型值 3.十进制123  ... 4.八进制,以0开头,如0123,0754  ... ...

  8. C语言中整型浮点型在计算机中的存储

    第一次写博客,遣词造句有点菜,算是一次简单梳理,慢慢学习人家的博客风格,随着学习的深入再做修改. 本次学习的是C语言在VS下的编译调试,对于初学者两说,首先说一下如何监控变量,以及监控变量在内存中的存 ...

  9. 音频在计算机中的存储

    文章目录 1 音频在计算机中的存储 1.1 音频是模拟数据 1.2 采样 1.3 编码 1.4 位率 1.5 编码标准 1 音频在计算机中的存储 1.1 音频是模拟数据 模拟数据就是随时间或空间而连续 ...

最新文章

  1. ios cocopods 安装使用及高级教程
  2. RedHat Enterprise Linux 5 安装GCC过程
  3. 【GNN】2022年最新3篇GNN领域综述!
  4. vs2010中moc文件生成方法
  5. python修饰器原理_Python修饰器的函数式编程
  6. MATLAB学习(4)——min
  7. C++11线程库模板
  8. Git:拉取远程分支
  9. 西电计算机科学与技术排名,西安电子科技大学王牌专业有哪些及专业排名
  10. B2B,B2C,C2C,C2B,B2G
  11. Ring Buffer 原理
  12. 抖音最近很火的游戏直播:挤地铁教程+源码+软件下载
  13. HP笔记本电源开关灯常亮,不能开机的处理
  14. JQuery Mobile试试水
  15. 【技巧】vistual studio 2017 communty 版本许可证过期解决办法
  16. element table相同数据行合并
  17. 【HTML总复习】一文带你查漏补缺,暖你一整天
  18. 巨儒艮、漂泊信天翁……这位90后中科院动物所研究员用日历讲述“物种故事”...
  19. 特别引人注目的头像_引人注目的:无需编写代码即可创建美观,针对移动设备优化的网站
  20. 女人怎样看男人和男人怎样看女人

热门文章

  1. UICollectionView,CollectionView,瀑布流
  2. 大话移动通信pdf_移动通信是怎么实现的?
  3. 使用qsort对不连续的内存数据排序_常见的内排序和外排序算法
  4. 极限与连续知识点总结_考研数学一试卷全面分析,历年题型和知识点整理,送给2021的学子...
  5. 秘密开发一年多,解密奥运史上首个数字云徽章
  6. 一文教你快速上手PyFlink
  7. 2020年阿里云边缘计算和CDN的关键词
  8. 零基础学Java编程的三个重点学习内容
  9. 游戏中的方块艺术——从艺术生角度浅谈划时代产品“像素风“
  10. 角色动作系统概述:战斗、3C相关