byte为什么占8个bit,一个byte包括多少bit

首页 > 上门服务 > 作者:YD1662023-11-05 06:42:33

按位或: 以下结果 = 7

int i = 3 | 4; 按位或:只要有1个数为1,才为1 3 的二进制: 00000000 00000000 00000000 00000011 4 的二进制: 00000000 00000000 00000000 00000100 3 | 4按位或: 00000000 00000000 00000000 00000111

byte为什么占8个bit,一个byte包括多少bit(5)

按位异或: 以下结果 = 7

int i = 3 ^ 4; 按位异或:两个不一样的时候才为1 3 的二进制: 00000000 00000000 00000000 00000011 4 的二进制: 00000000 00000000 00000000 00000100 3 ^ 4按位异或: 00000000 00000000 00000000 00000111

byte为什么占8个bit,一个byte包括多少bit(6)

按位取反: 以下结果 = - 4

int i = ~3; 按位取反: 1 变 0、 0 变 1 3 的二进制:00000000 00000000 00000000 00000011 取反: 11111111 11111111 11111111 11111100

但是这里要记住,取反的结果也是补码的形式,我们来从补码转一波源码

补码:11111111 11111111 11111111 11111100 补码 - 1 的反码 反码:11111111 11111111 11111111 11111011 反码除符号位置不变,其他1变0、0变1,得原码 原码:10000000 00000000 00000000 00000100

左移动: 以下结果 = 12,空出位置用0补全

int i = 3 << 2; 左移:往左边移动两位,最左边的数就被挤掉了,右边就空出了两位,用0补全。 3 的二进制:00000000 00000000 00000000 00000011 3 << 2: 00000000 00000000 00000000 00001100

右移动: 以下结果 = 0,空出的位置根据符号位补全

int i = 3 >> 2; 右移:往右边移动两位,右边的数就被挤掉了,左边空出两位,用符号位置填充,符号为1就用1填充,是0就用0填充 3 的二进制:00000000 00000000 00000000 00000011 3 << 2: 00000000 00000000 00000000 00000000

无符号右移动: 以下结果 = 2,空出的位置0补全。

int i = 8 >>> 2; 无符号右移动:往右移动两位,全部用0补全 8的二进制:00000000 00000000 00000000 00001000 8 >>> 2 :00000000 00000000 00000000 00000010

总结下左移动、右移动、无符号右移动:

三种操作符均是往左移动、或者右移动,左移动和无符号右移动是不需要考虑符号位的,而右移动补全用需要考虑符号位~~~

面试官:嗯不错,那接下来进行下一个知识点吧。

小编:好的。

未完待续 ~~~~~~~~~

byte为什么占8个bit,一个byte包括多少bit(7)

本文主要重点是Java运算符中:位运算

在实际编码中,我们使用位运算可能会很少,甚至不用。 但是我们在浏览各种源码的时候,总会碰到各式各样的位运算符的操作,掌握位运算的前提需要了解进制一些相关的知识点,才能更好的理解位位运算的操作。

作者:IT贱男

原文链接:https://jiannan.blog.csdn.net/article/details/106566953

,
上一页12末页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.