美文网首页
二进制,十进制转换,位运算

二进制,十进制转换,位运算

作者: 我姓杨却不是你信仰 | 来源:发表于2020-12-03 17:03 被阅读0次
/**
 * 向左移位,相当于十进制数据转换成二进制,然后末尾添m位0
 * 计算结果证明,等于传入数字翻倍效果
 * 例53,左移1位后,变106
 * 左移两位,结果212,相当于53*2*2
 * 左移三位,结果424,相当于53*2*2*2
 *
 * 十进制53 转换为二进制 连续除2,若有余,记1。若整除,记0。
 * 例:
 * 53/2=26余1  记1
 * 26/2=13余0  记0
 * 13/2=6余1   记1
 * 6/2=3余0    记0
 * 3/2=1余1    记1
 * 1结束。     记1
 * 转换结果:110101
 * @param num
 * @param m
 * @return
 */
public static int leftShift(int num,int m){
    num = num << m;
    return num;
}

/**
 * 向右移位,相当于十进制数据转换成二进制,然后舍去末尾m位
 *
 * 二进制110101 转十进制,底数为10
 * 如:
 * 1 | 1*2^5
 *   |    +
 * 1 |  1*2^4
 *   |    +
 * 0 |  0*2^3
 *   |    +
 * 1 |  1*2^2
 *   |    +
 * 0 |  0*2^1
 *   |    +
 * 1 |  1*2^0
 * 计算规则如下,为0的不加,1的相加。
 * 得53
 *
 * 右移一位,变成11010 按照上述规则 转换成十进制,得26 刚好是53/2的整数商
 * 右移两位  得13
 * 右移三位  得6
 * @param num
 * @param m
 * @return
 */
public static int rightShift(int num,int m){
    num = num >> m;
    return num;
}

计算机为什么要使用二进制,这个跟系统的硬件实现有关系,组成计算机系统的逻辑电路通常只有两个逻辑,即开关的打开或关闭的状态。0为关闭,1为打开。即便系统受到一定的干扰,它也可以可靠的分辨出,数字0或者1。
因此,在具体的系统实现中,二进制的数据表达有抗干扰,高可靠的优点。
有个疑问,为什么不用十进制呢,可以更清楚的表达。
那我解释下,假设底层使用十进制的话,那就需要判断10种状态,在后续业务繁杂的情况下,状态判断就会很艰难,出错的机率会变大。
二进制也比较适合逻辑运算,比如真或者假。

位的逻辑操作:

1,“ 或 ”==" | "
参与操作的位中,只要有一位是1,则为1。
例:
"1 1 0 1 0 1";

"1 0 0 0 1 1";
结果: "1 1 0 1 1 1";
2,“ 与 ”==“ & ”
参与操作的位中,只有全部是1,才为1。
例:
"1 1 0 1 0 1";

"1 0 0 0 1 1";
结果: "1 0 0 0 0 1";
3,“ 异或 ”==“ ^ ”
它具有排异性,就是说参与操作的位中,必须不相同才为1,不同则为0。两个相同的数值,按位异或结果为0,是相等的必要充分条件,
例:
"1 1 0 1 0 1";
异或
"1 1 0 1 0 1";
结果:"0 0 0 0 0 0";

相关文章

  • 二进制基础

    了解 十进制和二进制的由来 进制转换 位运算 JDK内置的进制转换 Java中的进制 十进制和二进制的又来 十进制...

  • 【算法训练营学习笔记-Week07】位运算的妙用

    位运算 如何从十进制转换为二进制 位运算符号 含义运算符示例左移<<0011 ->0110右移>>0110 -> ...

  • 快速理解位运算符和二进制数

    二进制转十进制,十进制转二进制,位运算符 | 和 & 先看个例子 十进制转二进制如何转换: 以上述67和33数字为...

  • 10/17

    今天老师讲了进制转换和位运算。进制转换就是二进制、八进制、十进制、十六进制的相互转化,位运算包括按位与,按位或,异...

  • 12.21

    今天星期四,今天是牛老师给我们讲课,主要讲了位的运算,包括位运算的运算符,二进制十进制十六进制的转换,位运算的应用...

  • 二进制基础

    二进制转十进制 十进制转二进制 八进制转二进制 二进制的位运算 关于负数的右移与无符号右移运算小结

  • python 的进制转换

    十进制, 二进制相互转换 十进制转换为二进制 二进制转换为十进制 十进制, 八进制相互转换 十进制转换为八进制 八...

  • 无标题文章

    2017-10-17 今天学习了进制之间的转换,常用进制有:二进制,十进制,十六进制,位运算,bit位,byte字...

  • 计算机基础知识

    一,二进制和十进制转换 1.十进制转换为二进制:进行对2取余法计算 2.二进制转换为十进制: 从最后一位开始算,依...

  • 学习报告

    2017年10月17日 星期:二 天气:多云 今天学了我们学习了位运算,有二进制转换的,十进制转换的,十六禁止转...

网友评论

      本文标题:二进制,十进制转换,位运算

      本文链接:https://www.haomeiwen.com/subject/ekzmwktx.html