zoukankan      html  css  js  c++  java
  • 二进制运算

    (LSS同学请看)

    假设N = 11.0101

    (一切运算都是二进制表示)

    其实N = 11.0101 * 1 -> N = 11.0101 * 20

    设红色数字为A,蓝色数字为B(博客上不能标颜色,A是左边长的一串,B是右边2的多少次方那一串)

     

    那么如果假设此时A是 1.10101,就代表这个数字串左移了一位,(因为这是二进制)那么也就是进行了除2操作。为了与原来的N相等,那么B就要多乘一个2,然后这个多乘的2就变成B的指数部分加上1,例如20 * 2 = 21, 21 * 2 = 210,注意这一处,不是22,因为这是二进制,所以要将十进制数字变成二进制数字。

    所以对于书上的11.0101(此处乘20也就是1被省略) = 0.110101 * 210,也就是先将A左移了两位(也就是除以4,即22),所以右边的B就要乘以4,也就是二进制加1再加1,即:

    20 * 2 * 2 = 21 + 1 = 210

     

    同理如果0.110101*210 变成了 1.10101 * 21,那么就是A右移了一位(即乘2),所以为了保持相等,B就要除以一个2(也就是指数减去一个1),变成了21

     

    同理,对于1.10101 * 21 变成1101.01*2-10,也就是A右移了3位(乘8,即23),所以右边B的指数就要减去3,也就是21指数减去3就是2-2,也就是2-10.

  • 相关阅读:
    学渣逆袭回忆录:0序
    selenium和Firefox版本不兼容
    学习Python的第一课(简单的单元测试)
    C# 实现模拟登录功能,实现公共类分享。
    MVC之权限管理-网站开发之路
    程序员学习之路
    【数据结构】浅谈线性数据结构
    【数据结构】二叉堆
    tire 学习心得
    洛谷P1801 黑匣子
  • 原文地址:https://www.cnblogs.com/pureayu/p/13960989.html
Copyright © 2011-2022 走看看