zoukankan      html  css  js  c++  java
  • 二进制、八进制、十六进制运算

    一、二进制运算

    二进制使用 0和 1来表示的数,二进制的基数为 2。二进制数据也采用位置计数法,权位是以 2为底的幂。

    用 B表示二进制

    进位规则:逢一进二;借位规则:借一当二

    (一)二进制减法

    例如计算 1001001 - 0101101=11100(73 - 45=28)运算过程,从右向左逐位运算:

    1-1 = 0;

    0-0 = 0;

    0-1,0不够减 1,向前借一位后 +2 变成 2,得到 2-1 = 1;

    1-1,1在上一步中被借 一所以就变成了 0,0不够减 1,向前借一位后加 2变成了2,得到 2-1=1;

    0-0,0 在上一步被借一所以就变成了 -1,-1不够减 0,向前借一位后加 2变成了 1,得到1-0=1;

    0-1,0 在上一步被借一所以就变成了 -1,-1不够减 1,向前借一位后加 2变成了 1,得到1-1=0;

    1-0,1在上一步被借一所以就变成了 0,得到 0-0=0;

    所以最后 1001001 - 0101101 = 0011100

    注意:二进制减法时位数不够向前借一位,然后将该数加 2,所以二进制和十进制减法的区别就是,十进制是向前借 一位,二进制向前借一位后加 2;

     

     (二)二进制加法

    二进制加法相对来说就比较简单,二进制相加有四种情况:

    0 + 0 = 0;

    0 + 1 = 1;

    1 + 0 = 1;

    1 + 1 = 10;

    例如:1001 + 1011 = 10100  (9+11=20)运算过程,从右向左逐位运算:

    1+ 1=10,写 0,向前进一;

    0+1 = 1,由于后面向前进 1,1+1=10,写 0向前进一;

    0+0 = 0,由于后面向前进 1,0+1=1,写1;

    1+1 = 10,写 10。

    所以最后 1001 + 1011 = 10100

     

    (三)二进制乘法

    二进制相乘有四种情况:

    0 * 0 = 0;

    1  *1 = 0;

    0 * 1 = 0;

    0 * 1 = 0;

    例如:110010 * 1011 = 1000100110 (11*5=55)运算过程,从右向左逐位运算:

    二进制的乘法也和十进制的算法相似。

    (四)、二进制除法

    二进制除法有两种情况(除数只能为1):

    0÷1=0;

    1÷1=1;

    例如:1100 / 100 = 11(12/4 =3)

    二、十六进制运算

    十六进制:十六进制(英文名称:Hexadecimal),是计算机中数据的一种表示方法。十六进制由0-9,A-F组成,字母不区分大小写。十六进制中的 0-9对应着十进制中的0-9,十六进制中的A-F 对应着十进制中的 10-15。

    用 H 表示十六进制 

    (一)十六进制减法

    例如,3D25 - 05C3 = 3762(H) (15653 - 1475 = 3762)

    5-3 ,结果为 2;

    2-C,即为2-12,2-12不够向前借一位加 16,18-12=6;

    D-5,即为13-5,因为被借了一位所以要减1,12-5=7;

    3-0,结果为 3;

    所以 3D25 - 05C3 = 3762;

    注意:用十进制时向前借1位就是借10,而在16进制里向前借1就是借16

    (二)十六进制加法

    例如,3762(H) + 05C3 = 3D25 (3762 + 1475 = 15653)

    2+3,结果为 5;

    6+C,即为 6+12,18大于16,取 2 满 16向前进1;

    7+5,因为后面向前进了一位,所以结果为 12+1=13(D);

    3+0,结果为 0;

    所以结果:3762(H) + 05C3 = 3D25

    注意:十六进制加法中 满16进 1

    三、八进制运算

    八进制:Octal,缩写OCT或O,一种以8为基数的计数法,采用0,1,2,3,4,5,6,7八个数,逢八进1。一些编程语言中常常以数字0开始表明该数字是八进制。

    用 O表示八进制

    (一)八进制减法

    例如:534 - 157 = 355 (348 - 111= 237 )

    4-7,不够向前借一位加8,即为(4+8)-7,结果为 5;

    3-5,因为3已经被借了一变为2,2-5不够再向前借一位加 8,即为 (2+8)-5,结果为 5;

    5-1,5被借了一,即为4-1,结果为 3;

    所以结果:534 - 157 = 355 ;

    注意:用十进制时向前借1位就是借10,而在8 进制里向前借1就是借 8;

    (二)八进制加法

    例如:355(O) + 157(O) = 534 (237+111 = 348)

    5+7,为12大于8,所以结果为 4并且向前进一;

    5+5,为10,再加上上一位进的一,11大于8,结果为 3并向前进 1;

    3+1,再加上上一位进的一,结果为 4+1=5;

    所以结果:355(O) + 157(O) = 534 

    注意:八进制加法中满 8进 1

  • 相关阅读:
    在其他机器上安装mysql和hive后设置hive元数据存储为mysql
    MapReduce作业切片和Shuffle
    sns 批量清除脚本
    PHP 汉字 转换成 拼音
    PHPCMS V9 和其他应用同步
    nginx启动,重启,关闭命令
    Linux下zip unzip的用户示例 解压到指定目录
    nginx phpcms rewrite规则
    javascript 里面嵌套方法
    数制及其转换
  • 原文地址:https://www.cnblogs.com/nyw1983/p/11887230.html
Copyright © 2011-2022 走看看