zoukankan      html  css  js  c++  java
  • 二进制运算-十进制与二进制的转换

    在学习JDK源码和JAVA一些开源框架源码的时候经常会碰到位运算,要搞懂位运算就得弄明白二进制和十进制之间的转换

    一、十进制转换成二进制

    1.正整数转换成二进制

    十进制整数转换成二进制就是不停的除以二,直到不足二为止(0或者1),然后记录余数,从下往上排列出来就是二进制的值

    举个例子:5和8转换成二进制

     5的二进制为101,8的二进制为1000

    2.负整数转换成二进制

    负整数转换成二进制,首先取得它绝对值的正数的二进制,然后取反(0变1,1变0),然后加1

    举个例子:-5的二进制(32位计算机中)

    第一步:5的二进制101,高位补0之后32位计算机中就是:0000 0000 0000 0000 0000 0000 0000 0101

    第二步:取反,1111 1111 1111 1111 1111 1111 1111 1010  (反码)

    第三步:加一,1111 1111 1111 1111 1111 1111 1111 1011  (补码)

    如果你使用的是windows系统可以拿去验证,比如我是64位系统 -5的二进制是1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1111 1011

     3.小数转换成二进制

    首先把整数部分转换成二进制,然后把小数位转换(小数为换算每次乘2,不足1为0),最后相加

    举个例子:3.15的二进制 

    第一步:3的二进制11

    第二步:0.15的二进制0.001,如图

    第三步:相加得11.001

    一、二进制转换成十进制

    1.二进制转换成十进制整数

    举个例子:

    101的十进制和 1110的十进制

                     

    2.二进制转换成十进制负数

    -5的二进制是111 1111 1111 1111 1111 1111 1111 1011,反码是0000 0000 0000 0000 0000 0000 0000 0100,加一是0000 0000 0000 0000 0000 0000 0000 0101,十进制就是5,取相反数则是-5

    3.二进制转换成十进制整数

    举个例子:3.15的二进制是11.001

  • 相关阅读:
    一条select语句的执行流程
    理解数据库的事物,ACID,cap
    java并发volatile和sychnorized的底层机制
    避免死锁的几种方式
    如何减少线程上下文切换
    RestTemplate设置超时时间
    spring事务隔离级别和传播级别
    mysql数据库与其他数据库的区别
    spingcloud组件注解汇总
    python二级选择题易错知识点总结
  • 原文地址:https://www.cnblogs.com/saltiest/p/11558635.html
Copyright © 2011-2022 走看看