位运算符左移右移怎么运算 3分钟了解位运算规则

Java语言、C语言或者其他语言中经常用到bit,所以本文不使用某一种语言作为例子。原点从0和1开始。按位运算主要有按位与(&)、按位或(|)、按位异或()、求反(~)、左移(:& gt)这几类运算符,除了否定(~)都是二元运算符,即运算符的左右两边都需要一个操作数。1,补码在总结按位运...

Java语言、C语言或者其他语言中经常用到bit,所以本文不使用某一种语言作为例子。原点从0和1开始。按位运算主要有按位与(&)、按位或(|)、按位异或()、求反(~)、左移(<>:& gt)这几类运算符,除了否定(~)都是二元运算符,即运算符的左右两边都需要一个操作数。

1,补码

在总结按位运算之前,有必要先介绍一下补码的知识。我们知道,十进制正整数转换成二进制数,只需要除以2,取余数即可。但是如何将十进制负整数转换成二进制数呢?其实负数是用补码的形式表示的,它的转换方式是,简单一句话:先用正数转换,然后加1代替。

要用二进制表示十进制-10,先用二进制表示10:

0000 0000 0000 1010

反转:

1111 1111 1111 0101

添加1:

1111 1111 1111 0110

所以-10的二进制表示是:1111 1111 1111 0110。

2。按位and (& )

运算中涉及的两个数转换成二进制(0,1)后,进行AND运算。只有对应位上的数字都是1时,这个位取1,否则应该是0。

逐位AND (&)运算:

0000 0000 0000 1010

1111 1111 1111 0110

———————–

0000 0000 0000 0010

所以:10 & 10 = 0000 0000 0000 0010

3,按位或(|)

运算中涉及的两个数转换成二进制(0,1)后,执行OR运算。只要对应的位中有1,该位就取1,全部不为1,即0。

对10和-10执行按位或(|)运算:

0000 0000 0000 1010

1111 1111 1111 0110

———————–

1111 1111 1111 1110

所以:10 | -10 = 1111 1111 1111 1110

4。按位异或()

运算中涉及的两个数转换成二进制(0,1)后,执行异或运算。只有对应位上的数字不相同时,值为1,相同时为0。

对10和-10执行按位XOR()运算:

0000 0000 0000 1010

1111 1111 1111 0110

———————–

1111 1111 1111 1100

所以:10-10 = 1111 1111 1111 1111 1100

可以看出,任何一个数与0进行异或,结果就是它本身。XOR也可以用来实现一个很好的交换两个数的交换算法。算法如下:

a = a ^ b;

b = b ^ a;

a = a ^ b;

5。反转(~)

参与运算的两个数转换成二进制(0,1)后,求反。每个位取相反的值,1变成0,0变成1。

求反(~) 10:

0000 0000 0000 1010

———————

1111 1111 1111 0101

所以:~10 = 1111 1111 1111 0101

6。向左移动(<>

运算中涉及的两个数转换成二进制(0,1)后,进行左移运算,用于将一个数的所有二进制位向左移动若干位。

将10左移2位(相当于右加2个零):

0000 0000 0000 1010

——————–

0000 0000 0010 1000

所以:10<>

注意观察发现,左移一位的结果是原值乘以2,左移两位的结果是原值乘以4。

7。向右移动(>:& gt)

运算中涉及的两个数转换成二进制(0,1)后,进行右移运算,用于将一个数的所有二进制位向右移动若干位。

将10向右移动2位(相当于向左添加2个零):

0000 0000 0000 1010

——————–

0000 0000 0000 0010

so:10 >:>2 = 0000 0000 0000 0010 = 2

注意,我们可以观察到,右移一位的结果是原值除以2,左移两位的结果是原值除以4。注意,以后除了没有小数位的,都是四舍五入。

本文来自我要无比强大投稿,不代表舒华文档立场,如若转载,请注明出处:https://www.chinashuhua.cn/24/503364.html

打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
() 0
上一篇 04-14
下一篇 04-14

相关推荐

  • 定积分公式运算法则例题 常用定积分公式大全

    在积分的学习中,不仅要熟练解题,还要注意对定义性质的理解和把握。下面二重积分和定积分的应用问题需要在理解定积分定义的基础上进行研究。定积分主要是牛顿莱布尼兹公式通过不定积分计算出来的。定积分的本质是用无穷小法求极限,因此可以应用于求数列和的极限问题。解决这

    2023-07-19 13:35:01
    420 0
  • 什么是有效数字运算规则 有效数字定义及应用

    在我们的实验研究中,很多时候我们并不清楚实验数据。应该记录多少个小数位?不准确的数据记录严重影响实验结果和结论。主要是因为有效数字不清楚。一、有效数字的定义分析中实际能测到的数为有效数,最后一个可疑值为(一般为1个单位误差)。有效号码=准确号码+1个可疑号码。该

    2023-06-08 16:59:01
    667 0
  • 乘除法混合运算规则

    有理数的加减乘除混合运算,如果没有括号表示先做什么,则按照“先乘后除,后加后除”的顺序进行。如果是同级运算,则在公式中从左到右计算,不加括号。只有加减或乘除的,从左向右计算。乘除法的混合运算规则包括先将前面的加法和乘法一起计算,先计算乘法、加法和减法为第一

    2023-05-18 07:31:01
    1040 0
  • c语言非运算怎么用 c语言必背18个经典程序

    c提供了一组逻辑运算符:or (||),and(& &),非(!),分别对应命题逻辑中的OR、AND和NOT运算。逻辑运算符:或 ||。在命题逻辑中,当P=1或Q=1时,P||Q等于1。逻辑运算符:且 &&。在命题逻辑中,当P=1且Q=1时,P&&Q才等于1。逻辑运算符:非 !。在命题逻辑中

    2023-05-18 01:23:01
    488 0

评论列表

联系我们

在线咨询: QQ交谈

邮件:admin@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信