1.事情起因

最近刷leetcode遇到了10进制转换2进制相关的问题,当遇到负数的时候发现跟思考的不一样,-1并不是 1000 ... 0001,而是1111 ... 1111,究其原因是负数以补码形式存储在4个byte中,这是与正数存储原码不同的地方,遗忘已久的最底层知识由回来了。

2.int32正数在4个byte中的存储形式

2.1 正数

正数存储是正常的原码形式,也就是num%2的mod结果,0或1,例如数值3的int存储是:

00000000 00000000 00000000 00000011

用手指查一下,是01,10,11,就查到了3。

2.2 负数

负数存储是补码的形式,比如-3,二进制可就不是11存储在int32了,这可要重点注意。

首先原码转反码,就是0变1,1变0:

原码:00000000 00000000 00000000 00000011
反码:11111111 11111111 11111111 11111100

然后再转为补码,就是在反码的基础上加1:

反码:11111111 11111111 11111111 11111100
补码:11111111 11111111 11111111 11111101

所以-3在int32中的byte存储结果是最终的补码 11111111 11111111 11111111 11111101,再刷题的时候,就不要误以为十进制负数是原码了哦,负数是补码存储的。

2.3 为什么计算机要用补码

留下个问题,大家可以思考下,我将在另一篇文章中介绍。

【数据存储结构】int32的二进制存储形式相关推荐

  1. pg数据库表存放在哪里_超详细的PG数据存储结构--逻辑结构和物理存储总结,值得收藏...

    概述 今天主要讲讲PG的数据结构,PG数据存储结构分为:逻辑结构和物理存储. 其中逻辑存储结构是内部的组织和管理数据的方式.物理存储结构是操作系统中组织和管理数据的方式.逻辑存储结构适用于不同的操作系 ...

  2. 微型计算机的多级存储结构,计算机系统提供多级存储结构,操作系统( )进行管理。...

    答案 查看答案 解析: [解析题]冯?诺依曼计算机工作原理的设计思想是( ). [解析题]Windows 7系统允许(? ??)用户使用一台计算机 [解析题]数据在计算机中是以二进制的形式存储的.() ...

  3. mysql 存储 结构,mysql目录与存储结构(一)

    mysql索引与存储结构(一) 首先从一个问题说起. 问题现象: 查询语句如下: -- sql1 SELECT w.wid, w.rid FROM warestock w JOIN product p ...

  4. 假设以邻接矩阵作为图的存储结构_图的存储

    因为图的结构特点,使得其在存储.遍历也相对复杂一些. 邻接矩阵存储图 最简单的方式就是将图的顶点用一维数组存储进来,然后将边信息存储在二维矩阵中,这两个数组合称为图的邻接矩阵(Adjacency Ma ...

  5. 数组是逻辑结构还是存储结构_数据结构之存储方式

    数据结构的存储⽅式只有两种:数组(顺序存储)和链表(链式存储). 这句话怎么理解,不是还有散列表.栈.队列.堆.树.图等等各种数据结构吗? 我们分析问题,⼀定要有递归的思想,⾃顶向下,从抽象到具体.你 ...

  6. mysql n 存储结构,MySQL体系结构和存储引擎概述

    一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是依照某种数据模型组织起来并存放于二级 ...

  7. 【mysql】-【innodb数据存储结构】

    文章目录 数据库的存储结构:页 磁盘与内存交互基本单位:页 页结构概述 页的大小 页的上层结构 页的内部结构 File Header(文件头部)和File Trailer(文件尾部) File Hea ...

  8. MySQL笔记:第07章_InnoDB数据存储结构

    第07章_InnoDB数据存储结构 1.数据库的存储结构:页 1.1磁盘与内存交互基本单位:页 1.2页结构概述 1.3页的大小 1.4页的上层结构 2.页的内部结构 第1部分:File Header ...

  9. 数据的逻辑结构和存储结构

    数据的逻辑结构合存储结构 一,逻辑结构 数据的逻辑结构是对数据元素之间逻辑关系的描述,它与数据在计算机中存储方式无关,根据数据元素之间的不同特性,可以对数据的逻辑结构进行分类 分类1:(选型结构和非线 ...

最新文章

  1. record-09 ATM 过程思想 综合练习
  2. 目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?...
  3. 产品设计丨价格理论与用户体验
  4. php 特殊字符大全,关于php 特殊字符的文章推荐
  5. IntelliJ IDEA for Mac中的Maven操作窗口详解
  6. 业界分享 | Embedding技术在商业搜索与推荐场景的实践
  7. swager java_Swagger介绍及使用
  8. Django项目将debug模式设置为false时,静态文件出错
  9. sourceMap到底是个啥玩意?
  10. EasyDarwin EasyCamera支持海康摄像机接入了
  11. 基本积分表的联想记忆
  12. bzoj3097: Hash Killer I
  13. 合肥工业大学计算机与信息学院复试,合肥工业大学计算机与信息学院2018考研大纲(复试)...
  14. JS防止浏览器自动记住密码
  15. 【回文数】求11到n之间(包括n),既是素数又是回文数的整数有多少个。 输入 一个大于11小于1000的整数n。 输出 11到n之间的素数回文数个数。 样例输入 Copy 23 样例输出 Copy 1
  16. PLC运动控制系列之机械回原点(back to origin)
  17. tekton入门 - 起步
  18. 【读书笔记】代码思考
  19. UX、UI、 IA和IxD傻傻分不清
  20. RealSense 动态校准

热门文章

  1. sublime 复制黏贴等快捷键修改
  2. 微信公众号批量推送java_微信批量关注公众号、推送消息的方法!
  3. 【面试复盘】Momenta视觉算法实习生一面
  4. 如何在win10下成功安装winpcap_4.1.3
  5. Redis 本身有持久化,为什么还要写进 MySQL?
  6. linux之gzip,bzip2命令
  7. 鸿蒙运行内存4G手机,手机运行内存真的越大越好吗?其实你们都被忽悠了
  8. Google-Authenticator双因子认证
  9. cbioportal打不开_cbioportal打不开
  10. 新加坡中央银行测试数字加密货币发行