首页 > 其他 > 详细

计算机中的二级制

时间:2019-12-20 13:17:16      阅读:80      评论:0      收藏:0      [点我收藏+]

一、二进制运算

二进制数据:110101,转为我们看到的数字为53,具体过程:
二进制的数位就是 2^n 的形式
技术分享图片

二、二进制的位操作

二进制左移一位,其实就是将数字翻倍。
技术分享图片
二进制右移一位,就是将数字除以 2 并求整数商的操作。
技术分享图片

三、java中的位操作(所有语言大似相同)

num-等待移位的十进制数, m- 向右移的位数,结果移位后的十进制数
向左移位
num << m
向右移位(逻辑右移)
num >>> m

四、逻辑右移和算术右移

以在32位系统中二进制为110101,十进制为53举例,呈现如图:
技术分享图片
-53呈现为(正数的补位):
技术分享图片
在32位系统中,从右往左数第32位是0的为正数,为1的是负数。
那么这个时候向右移位,就会产生一个问题:对于符号位(特别是符号位为 1 的时候),我们是否也需要将其右移呢?因此,Java 里定义了两种右移,逻辑右移和算术右移。逻辑右移 1 位,左边补 0 即可。
技术分享图片
算术右移时保持符号位不变,除符号位之外的右移一位并补符号位 1。补的 1 仍然在符号位之后。
技术分享图片
逻辑右移在 Java 和 Python 语言中使用 >>> 表示,而算术右移使用 >> 表示。

五、位的“或”、“与”和“异或”

“或”、“与”和“异或”在此不多做解释看图应该会明白。
位的“或”
技术分享图片
位的“与”
技术分享图片
位的“异或”
技术分享图片

计算机中的二级制

原文:https://www.cnblogs.com/-Neo/p/12072486.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!