小端 和 大端

在内存中存储时,都是从内存的低地址往高地址存,即0x00000000 -> 0xffffffff

以汉字 “严”为例,Unicode码是4E25,需要两个字节存储,一个字节是0x4E,另一个字节是0x25.
低字节先存(该值的起始内存位置,即从低地址单元,先存0x25),叫小端
高字节先存(该值的起始内存位置,即从低地址单元,先存0x4E),叫大端

另一个分辨办法,从该值的起始内存位置(内存起始)位置开始读
顺着我们读习惯的(我们读为4E25),就是大头方式,否则就是小头方式

切记:原码 反码 补码 都是针对整数来说的,小数不使用这种办法

原码 = 符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值

反码 = (正整数) 原码本身
(负整数) 在原码基础上,符号位不变,其余各个位取反

补码 = (正整数) 原码本身
(负整数) 在反码基础上 + 1

-1的原码:  1000  0000 0000 0000 0000 0000 0000 0001
-1的反码:1111  1111  1111  1111  1111  1111  1111 1110
-1的补码:1111  1111  1111  1111  1111  1111  1111 1111
十六进制:   f        f        f        f        f        f        f        f         即0x ff ff ff ff

-1的实际内存表现: 0x ff ff ff ff

机器为小端,低位先存,所以最终存储为0x ff ff ff ff,因为各字节都相同,看不出字节序

12的原码:0000 0000 0000 0000 0000 0000 0000 1100
12的反码:0000 0000 0000 0000 0000 0000 0000 1100
12的补码:0000 0000 0000 0000 0000 0000 0000 1100

十六进制:   0       0       0       0       0       0       0       c        即0x 00 00 00 0c

12的实际内存表现: 0x 0c 00 00 00

机器为小端,低位先存,所以最终存储为0x0c 00 00 00

-12的原码:1000 00000000 0000 0000 0000 0000 1100
-12的反码:1111  11111111  1111  1111  1111  1111  0011 
-12的补码:1111  11111111  1111  1111  1111  1111  0100
十六进制:    f        f        f        f        f        f        f         4         即0x ff ff ff f4

-12的实际内存表现: 0x f4 ff ff ff

机器为小端,低位先存,所以最终存储为0x f4 ff ff ff

1023的原码:0000 0000 0000 0000 0000 0011 1111 1111 
1023的反码:0000 0000 0000 0000 0000 0011 1111 1111
1023的补码:0000 0000 0000 0000 0000 0011 1111 1111
十六进制:        0       0       0       0       0       3       f       f        即0x 00 00 03 ff

1023的实际内存表现: 0x ff 03 00 00

机器为小端,低位先存,所以最终存储为0x ff 03 00 00

-128的原码:1000 00000000 0000 0000 0000 1000  0000
-128的反码:1111  11111111  1111  1111  1111  0111  1111
-128的补码:1111  11111111  1111  1111  1111  1000  0000
十六进制:        f          f        f          f         f          f         8         0      即0x ff ff ff 80

-128的实际内存表现: 0x 80 ff ff ff

机器为小端,低位先存,所以最终存储为0x 80 ff ff ff

当只有一个字节的时候:

-128的原码: 1000 0000

记忆法:-128的原码原本是:1 1000 0000 ,最前面的1表负的,1000 0000表128

但是最前面的1超出了8位限制,所以被舍去了

-128的反码: 0111 1111

记忆法:-128的反码原本是:1 0111 1111 ,在原码基础上,符号位不变,其余各位取反

但是最前面的1超出了8位限制,所以被舍去

-128的补码: 1000 0000

记忆法:-128的补码原本是:1 1000 0000 ,仍然是在反码基础上,+1得到

但是最前面的1超出了8位限制,所以被舍去了

大端 小端 原码 反码 补码 及内存中的表现相关推荐

  1. c语言中的原码反码补码,c语言中的原码 反码 补码

    陈独秀的秘密 所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. 反码表示法规定:正数的反码与其原码 ...

  2. 原码 反码 补码的简单计算附例题

    原码 反码 补码 对计算机中常见数据简单分类 机器数 与 真值 原码 反码 补码 扩展 对计算机常见数据的分类 机器数 就是数值在计算机中的二进制表现形式 机器数在计算机中有符号,使用 最高位表示符号 ...

  3. 原码反码补码以及左移右移无符号左移右移。

    一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符 ...

  4. 【濡白的C语言】数据的存储(大小端模式,原码反码补码,浮点数的存储,浮点型精度缺失的原因)

    前言 很多学习C语言之后就会对各种类型感到很烦,但是数据的类型具有相当的意义.首先是类型决定了大小,即该数据在内存中开辟的空间大小:同时不同的类型还决定了数据存储的方式,相同的数据,存入整形与浮点型方 ...

  5. 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU

    笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...

  6. C语言基础(二)—— 常量与变量、数据类型、进位制、关键字、原码反码补码、限定符、字符串格式化输入输出

    1. 常量与变量 1.1 关键字 1.2 数据类型 数据类型的作用:编译器预算对象(变量)分配的内存空间大小. 1.3 常量 在程序运行过程中,其值不能被改变的量 常量一般出现在表达式或赋值语句中 整 ...

  7. c语言原码 补码 反码,C语言 原码--反码--补码

    //原码,反码,补码 #include #include //数值的表示方法--原码.反码和补码 //原码:最高位为符号位,其余各位为数值本身的绝对值 //反码: //正数:反码与原码相同 //负数: ...

  8. 关于计算机中 原码, 反码, 补码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

  9. 原码, 反码, 补码, 移码 详解

    本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...

最新文章

  1. 二叉树的前序中序后序遍历(当然是非递归的!)
  2. 脑细胞膜等效神经网路12分类实例
  3. SQL Server创建视图——视图的作用
  4. 改变bantchsize发现loss增大_肺内发现磨玻璃结节,一定就是早期肺癌吗?
  5. Luy 1.0 :一个React-like轮子的诞生
  6. java 子类 父类 转换_Java子类与父类之间的类型转换
  7. php linux 删除文件夹,linux下如何删除文件夹
  8. 【java】为什么 HashMap 的加载因子是0.75?
  9. 【Elasticsearch】极限网关 INFINI Gateway 初体验
  10. python3.7怎么安装tensorflow_gpu_(更新版)python3.7 Windows10 tensorflow-GPU 安装
  11. hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2
  12. case 在oracle和mysql_Mysql oracle casewhen 完美应用
  13. 【详解】服务可用性详细说明及其解决方案
  14. 上传git编译失败回退
  15. 教学向|如何快速入门maya制作动画,萌新也能冲
  16. 台式计算机摄像头插哪,台式电脑摄像头怎么调试
  17. 多传感器信息融合及应用(何友等著)一至四章节读书笔记
  18. 一文解读时间序列基本概念
  19. 苹果手机数据转移到新手机_怎么把旧手机的东西导入新手机?苹果手机数据迁移的几种方法...
  20. 文保数据-历史文化名城、名街、重点保护单位名单+空间分布数据

热门文章

  1. 数据结构的简单理解(4)
  2. HDU - 3364 Lanterns(高斯消元解方程(取模))
  3. CodeForces - 731D 80-th Level Archeology(线段树+暴力/差分)
  4. Minetorch教程
  5. python咖啡名称提取_(转)Python中文全攻略
  6. Adler-32校验算法
  7. Kafka设计解析(四):Kafka Consumer解析
  8. 用C++面向对象的方式动态加载so
  9. Socket重叠IO
  10. C++ 虚函数与纯虚函数