美文网首页
0x80000000存储和表示问题

0x80000000存储和表示问题

作者: xkang | 来源:发表于2018-01-09 16:01 被阅读0次

看算法时,发现以下设置语句

int i = 0x80000000
// 二进制表示为 10...0, ...表示省略中间的0或1

推测是负数最小值,可是观察其二进制表示,第一位是符号位,1表示负数,那么上述的值就是 -0,很明显不是这个含义。所以到网上查阅了一下,找到了这个答案。
转载至 关于0x80000000为什么等于-2147483648和负数在内存上储存的问题

1.负数在内存中的存储形式

  • (1)十进制负数以补码存储于内存上
-8的在内存上存储形式: 1...1000
  • (2)十六进制负数以原码存储在内存上
int i = 0x80000001
// i=-1在内存上表示为 10...01
  • (3)0x80000000的表示值
    0x80000000的值为 -2^31
    1后面的31位表示序号位,0...0【类似于数组中的0号位】,表示负数中的最小的一位。由于int的最小值为-2^31,排在负数从小到大的第0位,所以int i = 0x80000000 为 -(2^31)+ 0 = -2^31
  • (4)十进制的补码也符合符号位+序号位的原则
    以-1为例,其补码为 1..1
    11...1序号位为第2^31 -1位
    所以其值为 -2^31 + 2^31 -1 = -1 符合预期

2.总结

花了半个小时整理别人的东西,也算小有收获。符号位+序号位原则,序号位从0开始,序号位的值是多少就在最小值的基础上加上多少。好像也是符合正数的情况~~~。

数值 = 该符号下最小值 + 序号位表示数

以上。

相关文章

  • 0x80000000存储和表示问题

    看算法时,发现以下设置语句 推测是负数最小值,可是观察其二进制表示,第一位是符号位,1表示负数,那么上述的值就是 ...

  • 图的表示和存储结构

    图的表示:两种表示方法 邻接矩阵和邻接表 无向图 有向图 图的权 连通图 度 图的存储结构 1、邻接矩阵存储 浪...

  • 图论(三)图的创建

    前言 如果要用图来解决问题,首先我们必须采用某种数据结构来存储和表示“图”。相对于数组、链表等来说,图的存储结构就...

  • iOS 面试题集-03

    1、C语言中static变量和static函数有什么用: 1>、表示变量是静态存储变量,表示变量存放在静态存储区。...

  • Data Representation & External S

    数据表示 数据如何存储在存储设备(硬盘)上 一般的,关系型数据库中,数据都是以一行一行的记录进行存储和表示,例如在...

  • 如何理解MVC设计模式

    MVC是一种架构模式,M表示Model,V表示视图,C表示控制器Controller。 Model负责存储、定义和...

  • 计算机如何存储数据

    计算机如何存储数据 计算机如何存储0 1:利用充电和不充电表示0和1的状态,具体如何表示,先挖个坑,以后学习了计算...

  • java中的Json操作

    JSON:JavaScript对象表示法(JavaSript Object Notation),JSON是存储和交...

  • SQL

    一.存储过程1.创建存储过程的方法和创建视图差不多,即: 这里表示创建一个名叫productpricing的存储过...

  • Leetcode 存档点(1)-- 课程表II

    课程表II 这道题的基本思想是和拓扑排序相关联的,属于一个图的问题 图的存储结构 邻接矩阵表示法 邻接表表示法 拓...

网友评论

      本文标题:0x80000000存储和表示问题

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