为了更清楚的理解一些数据运算,对数据的二进制表示要了解:

1)原码表示法

原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]

例如,X1= +1010110

X2= 一1001010

其原码记作:

[X1=[+1010110]=01010110

[X2=[-1001010]=11001010

原码表示数的范围与二进制位数有关。当用8位二进制来表示小数原码时,其表示范围:

最大值为0.1111111,其真值约为(0.99)10

最小值为1.1111111,其真值约为(一0.99)10

当用8位二进制来表示整数原码时,其表示范围:

最大值为01111111,其真值为(127)10

最小值为11111111,其真值为(-127)10

在原码表示法中,对0有两种表示形式:

[+0]=00000000

[-0]=10000000

2)补码表示法

机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;(转自:图码网)如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X]

例如,[X1]=+1010110

[X2]= 一1001010

[X1]=01010110

[X1]=01010110

即      [X1]=[X1]=01010110

[X2]= 11001010

[X2]=10110101+1=10110110

补码表示数的范围与二进制位数有关。当采用8位二进制表示时,小数补码的表示范围:

最大为0.1111111,其真值为(0.99)10

最小为1.0000000,其真值为(一1)10

采用8位二进制表示时,整数补码的表示范围:

最大为01111111,其真值为(127)10

最小为10000000,其真值为(一128)10

在补码表示法中,0只有一种表示形式:

[+0]=00000000

[+0]=11111111+1=00000000(由于受设备字长的限制,最后的进位丢失)

所以有[+0]=[+0]=00000000

3)反码表示法

机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作[X]

例如:X1= +1010110

X2= 一1001010

[X1=01010110

[X1]=[X1=01010110

[X2]=11001010

[X2]=10110101

反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加1,就得到了该负数的补码。

例1. 已知[X]=10011010,求[X]

分析如下:

由[X]求[X]的原则是:若机器数为正数,则[X]=[X];若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加1而得到。现给定的机器数为负数,故有[X]=[X]十1,即

[X]=10011010

[X]=11100101

十)         1

 

[X]=11100110

 

例2. 已知[X]=11100110,求[X]

分析如下:

对于机器数为正数,则[X]=[X]

对于机器数为负数,则有[X]=[[X]

现给定的为负数,故有:

[X]=11100110

[[X]=10011001

十)         1

 

[[X]=10011010=[X]

转载于:https://www.cnblogs.com/zcftech/archive/2013/06/13/3133521.html

java 数据类型之原码,补码,反码相关推荐

  1. java反码补码原码作用_java原码补码反码关系解析

    本文为大家解析了java原码补码反码的关系,供大家参考,具体内容如下 原码:不管源数据是十进制还是十六进制,统统将数字转成二进制形式 反码:把原码的二进制统统反过来,0变成1,1变成0 补码:负数的反 ...

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

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

  3. 真值 原码 补码 反码 移码

    真值 原码 补码 反码 移码 真值是相对与其它四种的数字类型 书写中一般表示的数叫做"真值" 机器中编码表示的数 "机器数||机器码<原码 补码 反码 移码 > ...

  4. 计算机组成原理:原码,补码,反码,移码

    无符号数 寄存器的位数反映和决定无符号数的表示范围 比如八位的寄存器就只能储存十进制的0-255 有符号数 机器数与真值 在计算机当中没有硬件表示小数点的位置,而小数点的位置是我们自己约定的, 小数的 ...

  5. 原码 补码 反码的转换

    正数 : 原码 补码 反码都相同 机器数:+1001010 原码:01001010 (符号位 正数为0) 补码:01001010 (补码与原码相同) 反码:01001010 (反码与原码相同) 负数 ...

  6. 原码 补码 反码 移码

    目录 原码 反码 补码 移码 转换 原码 补码 反码 原码 0和1组成 正负用0和1表示(添加在最前面) 真值转原码 转化符号位 数值位十进制转二进制 对于十进制数 233(正数) 正数->符号 ...

  7. 计算机组成原理之 原码 补码 反码

    原码 补码 反码 前言 一.有符号数 1.1原码 补码 反码 总结 前言 在计算机中一般使用二进制表示各个有理数.在计算机中参与运算的数有两大类:有符号数和无符号数.无符号数就是没有符号的数,在寄存器 ...

  8. java部分基础知识 (二):计算机组成原理 原码 补码 反码 按位符 移位符 按位与 按位或 按位抑或 非 分析hashMap的put方法原理

    这里写目录标题 引言 符号位 正数的二进制计算 负数的二进制计算 按位符和移位符 按位符 移位符 分析hashMap运算符 byte和char 总结 引言 最近做完一个项目后,我忽然发现自己的基础并不 ...

  9. java 原码 补码 反码

    1 原码 就是该数字不进行其他操作时数字最原始的二进制表示,在Java中我们有熟悉的byte,short,int,long的整数型基本数据类型以及float,double的浮点型基本数据类型. 在Ja ...

  10. java 原码 补码,Java中的原码、反码和补码

    1.实例 先来看个例子 public static void main(String[] args) { System.out.println(~2); } ~在Java中是按位取反的意思,2是整形占 ...

最新文章

  1. 自动机器学习:团队如何在自动学习项目中一起工作?
  2. 长寿即服务:创业公司如何用AI技术颠覆传统药物研发
  3. Golang —— goroutine(协程)和channel(管道)
  4. Hive学习笔记 —— Hive的数据类型
  5. 减少if else的使用
  6. 安装+wordpress+出现403+forbidden_教程篇 | WordPress网站搭建详细教程
  7. Java中HashMap遍历的两种方式
  8. android 退出多个activity,Android 中 退出多个activity的经典方法
  9. python拆分excel的sheet为单文件_pandas处理excel一个sheet拆分为多个sheet
  10. 管理学习笔记(1)——高效团队的五大关键
  11. 过滤CString字符串中各位是数字,大小写字母,符号,汉字
  12. PK 想说爱你不容易
  13. 2018ICPC赛后总结
  14. Spring常用注解含义
  15. 国立台湾大学里的自动化书库(立体库)
  16. 路径规划算法:Dijkstra
  17. 项目团队管理:有效管理团队的八个方法
  18. [论]【DSTGCN】Dynamic SpatiotemporalGraph Convolutional Neural Networks for Traffic Data Imputation
  19. 通达信程序化交易接口使用步骤
  20. MySQL表的四种分区类型

热门文章

  1. linux 查看usb端口_linux开发:Linux下查看端口占用
  2. 为什么要使用 React-Redux?
  3. Web 浏览器相关的一些概念
  4. android 沙箱 逆向,【原创】沙箱Sandboxie v3.40 逆向完整源码
  5. lua 函数 默认值_Unity热更新框架之xLua
  6. ipad safari php readfile mp4,php – 在mac上的safari中没有加载Wav文件
  7. python怎么爬取知乎回答并制作词云_用Python分析了国庆“坑爹”景点......
  8. 微会显示服务器当前线路忙,免费电话之争:触宝电话/微会谁更强
  9. vue 多点触控手势_涨姿势了!Appium也可以多点触控操作
  10. 20210422:力扣第237周周赛题解记录(上)