大端 小端 原码 反码 补码 及内存中的表现
小端 和 大端
在内存中存储时,都是从内存的低地址往高地址存,即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位限制,所以被舍去了
大端 小端 原码 反码 补码 及内存中的表现相关推荐
- c语言中的原码反码补码,c语言中的原码 反码 补码
陈独秀的秘密 所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,"0"表示正,"1"表示负,其余位表示数值的大小. 反码表示法规定:正数的反码与其原码 ...
- 原码 反码 补码的简单计算附例题
原码 反码 补码 对计算机中常见数据简单分类 机器数 与 真值 原码 反码 补码 扩展 对计算机常见数据的分类 机器数 就是数值在计算机中的二进制表现形式 机器数在计算机中有符号,使用 最高位表示符号 ...
- 原码反码补码以及左移右移无符号左移右移。
一. 机器数和真值 在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念. 1.机器数 一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一个数的最高位存放符 ...
- 【濡白的C语言】数据的存储(大小端模式,原码反码补码,浮点数的存储,浮点型精度缺失的原因)
前言 很多学习C语言之后就会对各种类型感到很烦,但是数据的类型具有相当的意义.首先是类型决定了大小,即该数据在内存中开辟的空间大小:同时不同的类型还决定了数据存储的方式,相同的数据,存入整形与浮点型方 ...
- 计算机组成原理——基本组成 进制转化 奇偶校验 原码 反码 补码 移码 移位 原码补码乘法除法 IEEE754 加法器ALU
笔记来源于王道考研视频 第一章 通过电信号传递信息(低电平代表0,高电平代表1) 计算机系统 计算机系统=硬件+软件 软件 系统软件 应用软件 操作系统,数据库管理系统(DBMS),标准程序库(编程时 ...
- C语言基础(二)—— 常量与变量、数据类型、进位制、关键字、原码反码补码、限定符、字符串格式化输入输出
1. 常量与变量 1.1 关键字 1.2 数据类型 数据类型的作用:编译器预算对象(变量)分配的内存空间大小. 1.3 常量 在程序运行过程中,其值不能被改变的量 常量一般出现在表达式或赋值语句中 整 ...
- c语言原码 补码 反码,C语言 原码--反码--补码
//原码,反码,补码 #include #include //数值的表示方法--原码.反码和补码 //原码:最高位为符号位,其余各位为数值本身的绝对值 //反码: //正数:反码与原码相同 //负数: ...
- 关于计算机中 原码, 反码, 补码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
- 原码, 反码, 补码, 移码 详解
本篇文章讲解了计算机的原码, 反码和补码. 并且进行了深入探求了为何要使用反码和补码, 以及更进一步的论证了为何可以用反码, 补码的加法计算原码的减法. 论证部分如有不对的地方请各位牛人帮忙指正! 希 ...
最新文章
- 二叉树的前序中序后序遍历(当然是非递归的!)
- 脑细胞膜等效神经网路12分类实例
- SQL Server创建视图——视图的作用
- 改变bantchsize发现loss增大_肺内发现磨玻璃结节,一定就是早期肺癌吗?
- Luy 1.0 :一个React-like轮子的诞生
- java 子类 父类 转换_Java子类与父类之间的类型转换
- php linux 删除文件夹,linux下如何删除文件夹
- 【java】为什么 HashMap 的加载因子是0.75?
- 【Elasticsearch】极限网关 INFINI Gateway 初体验
- python3.7怎么安装tensorflow_gpu_(更新版)python3.7 Windows10 tensorflow-GPU 安装
- hadoop入门手册5:Hadoop【2.7.1】初级入门之命令:文件系统shell2
- case 在oracle和mysql_Mysql oracle casewhen 完美应用
- 【详解】服务可用性详细说明及其解决方案
- 上传git编译失败回退
- 教学向|如何快速入门maya制作动画,萌新也能冲
- 台式计算机摄像头插哪,台式电脑摄像头怎么调试
- 多传感器信息融合及应用(何友等著)一至四章节读书笔记
- 一文解读时间序列基本概念
- 苹果手机数据转移到新手机_怎么把旧手机的东西导入新手机?苹果手机数据迁移的几种方法...
- 文保数据-历史文化名城、名街、重点保护单位名单+空间分布数据