1、十进制负数转二进制

假设有一个 int 类型的数,值为5,那么,我们知道它在计算机中表示为: (因为java中int 是4个字节,所以高位需要补0,占够32位)

00000000 00000000 00000000 00000101

现在想知道,-5在计算机中如何表示?

在计算机中,负数以原码的补码形式表达。

什么叫补码呢?这得从原码,反码说起。

原码:一个正数,按照绝对值大小转换成的二进制数;一个负数按照绝对值大小转换成的二进制数,然后最高位补1,称为原码。

比如 00000000 00000000 00000000 00000101 是 5的 原码;10000000 00000000 00000000 00000101 是 -5的 原码。

反码:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。

取反操作指:原为1,得0;原为0,得1。(1变0; 0变1)

比如:正数00000000 00000000 00000000 00000101 的反码还是 00000000 00000000 00000000 00000101 ;

负数10000000 00000000 00000000 00000101每一位取反(除符号位),得11111111 11111111 11111111 11111010。

称:10000000 00000000 00000000 00000101 和 11111111 11111111 11111111 11111010互为反码。

补码:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.

比如:10000000 00000000 00000000 00000101 的反码是:11111111 11111111 11111111 11111010。

那么,补码为:

11111111 11111111 11111111 11111010 + 1 = 11111111 11111111 11111111 11111011

所以,-5 在计算机中表达为:11111111 11111111 11111111 11111011。转换为十六进制:0xFFFFFFFB。

再举一例,我们来看整数-1在计算机中如何表示。

假设这也是一个int类型,那么:

1、先取-1的原码:10000000 00000000 00000000 00000001

2、得反码: 11111111 11111111 11111111 11111110(除符号位按位取反)

3、得补码: 11111111 11111111 11111111 11111111

可见,-1在计算机里用二进制表达就是全1。16进制为:0xFFFFFF

主要知识点:

①正数的反码和补码都与原码相同。

②而负数的反码为对该数的原码除符号位外各位取反。

③负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1

下面是书上原文:

①原码表示法规定:用符号位和数值表示带符号数,正数的符号位用“0”表示,负数的符号位用“1”表示,数值部分用二进制形式表示。

②反码表示法规定:正数的反码与原码相同,负数的反码为对该数的原码除符号位外各位取反。

③补码表示法规定:正数的补码与原码相同,负数的补码为对该数的原码除符号位外各位取反,然后在最后一位加1.

④正零和负零的补码相同,[+0]补=[-0]补=0000 0000B。

2、符号位为1的二进制转十进制负数

相信大家已经知道如何个转法了,不过在此还是说明一下。

①除去符号位减1;

②除去符号位,按位取反;结果就是负数的源码;

③源码转成相应的十进制。

java负数转换为二进制_负数与二进制换转方法相关推荐

  1. java 负数存储结构_负数在java中的存储和读取过程 | 学步园

    问题描述: 将-5存储在文本文件中,再读取出来显示到控制台; 预备知识: 1.在java中使用补码处理数字,而且byte(8)的数字在扩展成int(32)类型的时候,正数填充0,负数填充1; 2.负数 ...

  2. java求负数取模_负数参与取模运算

    学习Python看到数值运算这部分,看到取模运算,原来不仅正数负数都可以取模,浮点数,甚至复数都可以取模: 对于x%y, 如果都是整数,则返回x/y的余数: 如果是浮点数,返回的是x - int(x/ ...

  3. c语言位运算负数的实例_负数位运算的右移操作-C语言基础

    这一篇探讨的是"负数位运算的右移操作",涉及到数据的源码.反码.补码的转换操作.属于C语言基础篇. 先看例子 #include int main(void) { //正数的位右移 ...

  4. python负数取模_负数的取模运算

    我们知道,在不同的语言中,对负数执行取模运算,结果有可能会是不同的.例如,(-11)%5在python中计算的结果是4,而在C(C99)中计算的结果则是-1. truncate除法 && ...

  5. mysql临时开启二进制_关于MySQL二进制日志Binlog的认识

    MySQL的二进制日志可以说或是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是失误安全型的. 在 ...

  6. c++ 负数比较大小_负数的定义(二)

    上期我们发现小学教材是通过"相反意义的量"引入负数,初中教材普遍是怎么样引入的负数我们来看看(看下图). 初中同样是从"相反意义的量"引入负数,有温度.增长率. ...

  7. 二进制_简单了解二进制

    二进制 二进制是计算技术中广泛采用的一种数制.二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一",借位规则是"借一当二",由18世纪德 ...

  8. python负数求余数_负数求余数 C 和 MatlabPython 处理不一样

    在百度看到这个问题:http://zhidao.baidu.com/question/937487369300959012.html?oldq=1 用matlab和Python测试了下,发现都是这样: ...

  9. java request body内容_解读@RequestBody的正确使用方法

    本文主要研究的是关于@RequestBody的正确使用方法的相关内容,具体如下. 最近在接收一个要离职同事的工作,接手的项目是用SpringBoot搭建的,其中看到了这样的写法: @RequestMa ...

最新文章

  1. 【开放书】《命令行数据科学指南(第二版)》
  2. 请举例解释@Required Annotation?
  3. 北京 | 阿里摩酷实验室 招聘 研究型实习生/社招
  4. 带你学习ES5中新增的方法
  5. sql server 2008安装图解
  6. 记录数据库内一条记录的更新时间
  7. python爬虫网页图片并保存到本地
  8. 记录一次es商品门店查询,关键字SearchSourceBuilder
  9. Django Book 2.0 翻译
  10. MyScript 手写识别数学公式、图形 自动计算
  11. php 简转繁体,PHP简体转繁体——MediaWiki-zhconvert
  12. markdown学习笔记(1):如何将.md文件转换为pdf
  13. Ubuntu下快捷方式图标存放位置
  14. 计算机和我的关系 论文参考文献,近几年计算机学生参考文献 计算机学生期刊参考文献哪里找...
  15. uniapp锚点定位
  16. org.apache.thrift.transport.TTransportException: SASL authentication not complete
  17. 微软在华十年:向中国倾斜
  18. qcon_从QCon San Francisco 2009中学到的重点知识和教训
  19. Java进阶之路~多态
  20. Web前端面试题(全锦集)

热门文章

  1. 防火墙策略梳理思路及前沿想法
  2. 如何处理Get请求参数过长
  3. [附源码]JAVA+ssm化妆品销售购物系统(程序+Lw)
  4. 雷电飞机射击游戏 JAVA
  5. 手机飞行模式这么厉害!现在才知道,每天都能用到
  6. wps怎么取消自动续费
  7. 游戏运维编年史|可能是目前最详细的游戏运维指南
  8. 菜鸟学习C语言——指针
  9. 【Java基础教程】(一)入门介绍篇 · 上:快速掌握核心概念,开启Java世界的探索之旅!这篇Java入门宝典助你翱翔~
  10. SpaceX发射60颗太空 建立宇宙WIFI