美文网首页
1. 二进制:不了解计算机的源头,你学什么编程

1. 二进制:不了解计算机的源头,你学什么编程

作者: Jason_Shu | 来源:发表于2018-12-12 17:26 被阅读0次
  1. 什么是二进制?
    十进制计数是以10为基数,二进制是以2为基数,二进制的数位就是2^n的形式。

  2. 计算机为什么要用二进制数?
    二进制数有表达能力强,抗干扰能力强的特点,适合逻辑运算。

  3. 二进制的位操作

3.1 移位操作

左移:二进制数左移1位就是将数字翻倍。

右移:分为「逻辑右移」和「算数右移」。

在Java中最高位是「符号位」,符号位为0的时候表示正数,符号位为1表示负数。我们以32位的Java为例,数字53的二进制数位110101,从右往左数的第32位就是0.

image.png

那么-53的符号位就是-1.


image.png

那么这个时候向右移位,就会产生一个问题:对于符号位(特别是符号位为 1 的时候),我们是否也需要将其右移呢?因此,Java 里定义了两种右移,逻辑右移和算术右移。逻辑右移 1 位,左边补 0 即可。

逻辑右移.png

算术右移时保持符号位不变,除符号位之外的右移一位并补符号位 1。补的 1 仍然在符号位之后。


算数右移.png

3.2 逻辑操作

「或」:参与操作的位中只要有1,则最后的位为1.


或操作.png

「与」:参与操作的位中全是1,最后的结果才是1.


与操作.png

「异或」:参与的位相同则最后的结果为0,不同则为1.


异或操作.png

相关文章

网友评论

      本文标题:1. 二进制:不了解计算机的源头,你学什么编程

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