精华内容
下载资源
问答
  • 位运算符的计算 假设如果 A = 10,且 B = 5,现在以二进制格式表示,它们如下所示: A = 0000 1010 B = 0000 0101 A & B = 0000 0000 按运算符: 全为1 才为 1 A | B = 0000 1111 按运算符: 有一个为1...

    位运算符的计算

    假设如果 A = 10,且 B = 5,现在以二进制格式表示,它们如下所示:

    A = 0000 1010
    B = 0000 0101
    
    A & B = 0000 0000   按位与运算符: 全为1 才为 1
    A | B = 0000 1111     按位或运算符: 有一个为1 就为1
    A ^ B = 0000 1111    按位异或运算符: 不同才为1
    ~A  = 1111 0101     按位取反运算符: 全部取反
    A << 2 将得到 0010 1000,即为  40    :左移运算符: 左移1 代表 乘2, 左移2 代表 乘4
    A >> 2 将得到 0000 0010,即为  2      :右移运算符: 右移1 代表 除2, 右移2 代表 除4
    

    位运算符的小技巧:

    1、判断奇偶性

    按位与: &1(0000 0001) 等于 0 为偶数, 等于 1 为奇数,因为偶数末位一定为0,其他位都是在 &0 结果都是0

    2、判断是否是2的幂次方

    return num & (num -1)== 0
    比如4 100 & 011 = 0,是2的幂次方

    3、按位或: x | 0 等于 x

    将两个值(x,y)拼在一起作为新的值z
    z = x << 32 | y
    说明:上面的前提是z的类型是64位,这样z的前32位代表的是x,后32位代表的y。想要再通过z获取x,则
    x = z >> 32

    4、按位与: x & 1 等于 x

    5、常用操作

    & = 取交集
    | = 取并集,比如 x | y = x 中再加 y
    & ~x : 将x去掉(跟x的反取交集,相当于去掉x)

    展开全文
  • 1_Java语言基础(位运算符的基本用法1)(了解) A:位运算符有哪些 &, |, ^, ~ , >>, >>>, << B:案例演示 位运算符的基本用法1 &,|,^,~ 的用法 &:有0则0 |:有1则1 ^:相同则0,...

    1_Java语言基础(位运算符的基本用法1)(了解)

    • A:位运算符有哪些
      • &, |, ^, ~ , >>, >>>, <<
    • B:案例演示
      • 位运算符的基本用法1
      • &,|,^,~ 的用法
      • &:有0则0
      • |:有1则1
      • ^:相同则0,不同则1
      • ~:按位取反

    2_Java语言基础(位异或运算符的特点及面试题)(掌握)

    • A:案例演示

      • 位异或运算符的特点

      • ^的特点:一个数据对另一个数据位异或两次,该数本身不变。

    • B:面试题:

      • 请自己实现两个整数变量的交换
      • 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。

    3_Java语言基础(位运算符的基本用法2及面试题)(了解)

    • A:案例演示 >>,>>>,<<的用法:
      • <<:左移 左边最高位丢弃,右边补齐0
        ·>>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
        · >>>:无符号右移 无论最高位是0还是1,左边补齐0
      • 最有效率的算出2 * 8的结果
    class Demo1_Operator {
    	public static void main(String[] args) {
    		/*
    		* &,|,^,~ 的用法
    		* &:有0则0
    		* |:有1则1
    		* ^:相同则0,不同则1
    		* ~:按位取反
    		*/
    
    		System.out.println(6 & 3);				//2
    		System.out.println(6 | 3);				//7
    		System.out.println(6 ^ 3);				//5	
    		System.out.println(~6);					//-7?					
    	}
    }
    /*
    	110
    &	011
    -----------
        010
    
    	110
    |	011
    -----------
        111
    
    	110
    ^	011
    -----------
        101
    
    	00000000 00000000 00000000 00000110		6的原码反码补码都是本身
    	11111111 11111111 11111111 11111001		对6取反
    -	00000000 00000000 00000000 00000001
    ---------------------------------------
    	11111111 11111111 11111111 11111000		反码
    	10000000 00000000 00000000 00000111		原码(-7)
    */
    
    class Demo2_Operator {
    	public static void main(String[] args) {
    		/*
    		* 位异或运算符的特点
    
    		* ^的特点:一个数据对另一个数据位异或两次,该数本身不变。
    		*/
    
    		//System.out.println(5 ^ 10 ^ 10);
    		//System.out.println(5 ^ 10 ^ 5);
    
    		/*
    		* 请自己实现两个整数变量的交换(不需要定义第三方变量)
    		* 注意:以后讲课的过程中,我没有明确指定数据的类型,默认int类型。
    		*/
    
    		int x = 10;
    		int y = 5;
    
    		//需要第三方变量,开发推荐用这种
    		/*int temp;
    		temp = x;
    		x = y;
    		y = temp;*/
    
    		//不需要定义第三方变量,有弊端,有可能会超出int的取值范围
    		/*x = x + y;				//10 + 5 = 15
    		y = x - y;				//15 - 5 = 10
    		x = x - y;				//15 - 10 = 5*/
    
    		//不需要第三方变量,通过^来做
    		x = x ^ y;				// 10 ^ 5 
    		y = x ^ y;				// 10 ^ 5 ^ 5	y = 10
    		x = x ^ y;				// 10 ^ 5 ^ 10  x = 5
    
    		System.out.println("x = " + x + ",y = " + y);
    	}
    }
    
    
    class Demo3_Operator {
    	public static void main(String[] args) {
    		/*
    		*  <<:左移	左边最高位丢弃,右边补齐0
    		*  >>:右移	最高位是0,左边补齐0;最高为是1,左边补齐1
    		*  >>>:无符号右移 无论最高位是0还是1,左边补齐0
    		*  最有效率的算出2 * 8的结果
    		*/
    
    		//左移,向左移动几位就是乘以2的几次幂
    		//System.out.println(12 << 1);		//24
    		//System.out.println(12 << 2);		//48
    
    		/*
    		00000000 00000000 00000000 00001100		12的补码
    	 (0)0000000 00000000 00000000 000011000		24的补码
    	(00)000000 00000000 00000000 0000110000		48的补码
    		*/
    
    		//右移,向右移动几位就是除以2的几次幂
    		//System.out.println(12 >> 1);
    		//System.out.println(12 >> 2);
    
    		/*
    		00000000 00000000 00000000 00001100		12的补码
    		000000000 00000000 00000000 0000110(0)	6
    		0000000000 00000000 00000000 000011(00) 3
    		*/
    
    		//最有效率的算出2 * 8的结果
    		System.out.println(2 << 3);
    	}
    }
    
    
    展开全文
  • 1、算数运算符算数运算符主要是加、减、乘、除、余、幂等常见的算术运算,以及加等、减等、乘等、除等、余等复合算术运算。注意:Shell只支持整数运算,小数部分会舍去。一般情...


    640?wx_fmt=png

    1、算数运算符

    算数运算符主要是加、减、乘、除、余、幂等常见的算术运算,以及加等、减等、乘等、除等、余等复合算术运算。

    注意:Shell只支持整数运算,小数部分会舍去。一般情况下算术运行需要个let命令一起来使用。注意除法运算,除数不能为0

    比如: 

    #常规运算符

    let 1+9 

    let 20-10

    let 2*5

    let 9/3

    let 10%4

    let 2**3

    #符合运算符

    x=8 x+=2 变量结果为 10,其余用法类似

    2、位运算符

    位运算是基于内存中二进制数据的运算,也就是基于位的运算。常见的位运算有左移运算、右移运算、按位与、按位或、按位非、按位异或等运算

    位元素的左移右移其实就是整数内存中的左右移动。左移<<,右移>>.

    比如十进制4在内存中排列如下:00000100

    用法:

    let "value=4<<2"

    echo ${value}

    输出:16

    let "value=4>>2"

    echo ${value}

    输出:1

    按位与运算(&)是将两个整数写出二进制形式,然后同位置相比较,只有对于位置的二进制值都为1结果才是1,否则0.比如:8&4

    00000100 #4

    00001000 #8

    00000000 #8&4结果 0

    按位或运算(|),将两个整数写出二进制形式,然后同位置相比较,只要对应的位置有1则结果就为1。比如:8|4

    00000100 #4

    00001000 #8

    00001100 #8|4结果12

    按异或运算将两个整数写出二进制形式,只要对应的位置同为1或者同为1结果就是0,否则为1。比如:10^3 来说

    00001010 #10

    00000011 #3

    00001001 #10^3 结果 9

    按位非(~)有快捷的公式进行计算 ~a 值位"-(a+1)"

    比如:let "value=~8"

    echo ${value}

    -9


    展开全文
  • c语言位运算符用法

    2021-05-18 12:13:41
    c语言位运算符用法C语言中运算的运算分量只能是整型或字符型数据,运算把运算对象看作是由二进位组成的串信息,按完成指定的运算,得到串信息的结果。下面小编就为大家介绍下c语言位运算符用法。c语言...

    c语言位运算符的用法

    C语言中位运算的运算分量只能是整型或字符型数据,位运算把运算对象看作是由二进位组成的位串信息,按位完成指定的运算,得到位串信息的结果。下面小编就为大家介绍下c语言位运算符的用法。

    c语言位运算符的用法如下:

    一、位运算符C语言提供了六种位运算符:

    & 按位与

    | 按位或

    ^ 按位异或

    ~ 取反

    << 左移

    >> 右移

    1. 按位与运算

    按位与运算符"&"是双目运算符。其功能是参与运算的两数各对应的二进位相与。只有对应的两个二进位均为1时,结果位才为1 ,否则为0。参与运算的数以补码方式出现。

    例如:9&5可写算式如下: 00001001 (9的二进制补码)&00000101 (5的二进制补码) 00000001 (1的二进制补码)可见9&5=1。

    按位与运算通常用来对某些位清0或保留某些位。例如把a 的高八位清 0 , 保留低八位, 可作 a&255 运算 ( 255 的二进制数为0000000011111111)。

    main(){

    int a=9,b=5,c;

    c=a&b;

    printf("a=%d/nb=%d/nc=%d/n",a,b,c);

    }

    2. 按位或运算

    按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

    例如:9|5可写算式如下: 00001001|00000101

    00001101 (十进制为13)可见9|5=13

    main(){

    int a=9,b=5,c;

    c=a|b;

    printf("a=%d/nb=%d/nc=%d/n",a,b,c);

    }

    3. 按位异或运算

    按位异或运算符“^”是双目运算符。其功能是参与运算的两数各对应的二进位相异或,当两对应的二进位相异时,结果为1。参与运算数仍以补码出现,例如9^5可写成算式如下: 00001001^00000101 00001100 (十进制为12)。

    main(){

    int a=9;

    a=a^15;

    printf("a=%d/n",a);

    }

    4. 求反运算

    求反运算符~为单目运算符,具有右结合性。 其功能是对参与运算的数的`各二进位按位求反。例如~9的运算为: ~(0000000000001001)结果为:1111111111110110。

    5. 左移运算

    左移运算符“<

    6. 右移运算

    右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。

    例如:设 a=15,a>>2 表示把000001111右移为00000011(十进制3)。 应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时, 最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。Turbo C和很多系统规定为补1。

    main(){

    unsigned a,b;

    printf("input a number: ");

    scanf("%d",&a);

    b=a>>5;

    b=b&15;

    printf("a=%d/tb=%d/n",a,b);

    }

    请再看一例!

    main(){

    char a='a',b='b';

    int p,c,d;

    p=a;

    p=(p<<8)|b;

    d=p&0xff;

    c=(p&0xff00)>>8;

    printf("a=%d/nb=%d/nc=%d/nd=%d/n",a,b,c,d);

    }

    【c语言位运算符的用法】相关文章:

    展开全文
  • 使用规则:两个二进制操作数对应同为1 结果 才为1,其余情况为0; 例如:整数 a = 15   整数 b = 127 计算:(a & b) 15 的二进制:0000 1111 127 的二进制为:0111 1111 即:(a & b) = 15 2.或(|)...
  • 位运算符用法

    2020-08-10 16:44:57
    位运算符用法 https://mp.weixin.qq.com/s?__biz=Mzg2NzA4MTkxNQ==&mid=2247485441&idx=1&sn=2dd6e5e4b34bab5127ef5462bf5a90a6&chksm=ce4043d5f937cac3f0e5b4d0f90e52f4b56eba07f85ae63da41e7ea...
  • c语言中位运算符用法

    万次阅读 多人点赞 2018-02-22 13:23:02
    运 算一直对位运算头疼,在此总结一下 程序中的所有数在计算机内存中都是以二进制的形式储存的。运算说穿了,就是直接对整数在内存中的二进制进行操作。...C语言提供了六种运算位运算符含义...
  • C语言进阶剖析 16 位运算符分析

    千次阅读 2019-01-21 23:29:20
    位运算符分析 C 语言中的位运算符 &nbsp;&nbsp;&nbsp;&nbsp;○ 位运算符直接对 bit 进行操作,其效率最高! 左移和右移注意点 &nbsp;&nbsp;&nbsp;&nbsp;○ 左操作数必须...
  • C语言中位运算符用法

    千次阅读 2019-03-01 21:43:14
    2、取int型变量a的第k(k=0,1,2....size of(int) ,从a的二进制形式的右侧数起) a&gt;&gt;k&amp;1; 3、将int型变量a的第k清0(k从0开始) a=a&amp;~(1&lt;&lt;k); 4、将int型变量...
  • //按与&:两个操作数都是1,结果才是1 alert(a&b) //结果是0 //按或:两个操作数只要有一个是1,结果就是1 alert(a|b) //结果是1 //按异或:两个数字一样,结果为0;两个数字不一样,结果就是1。 ...
  • java位运算符详解

    千次阅读 多人点赞 2018-03-28 11:57:46
    java位运算符详讲一、位运算符分类 java中位运算符主要...二、位运算符使用方式 1、按与&amp; 使用规则:全一则一,否则为零。 eg:计算7&amp;-5的结果 第一步:byte中的二进制 7的二进制 被除数 ...
  • 位运算符是用来操作二进制的。 运算共有 & | ^ ~ << >>六种操作方法 二进制在python中表示为”0b”。例如 a = 0b100110。bin函数可以把十进制转化为二进制数。 & (与) 如果两个二进制...
  • 本文实例讲述了JavaScript使用位运算符判断奇数和偶数的方法。分享给大家供大家参考。具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
  • “异或”运算符 (^)是对两个表达式执行按异或,下面为大家介绍下其具体的使用方法
  • 运算符:算术运算符: + , - , * , / , % , ++ , --符合运算符: += , *= , /= , %=条件运算符: ?:关系运算符: == , >= , <= , != , > , <逻辑运算符: &...位运算符:1 >按与&同一时...
  • Python-位运算符规则、原理与用法

    万次阅读 多人点赞 2018-12-14 17:09:30
    运算符运算规则:原来的所有右移,最低丢弃,最高位使用符号填充,相当于整除2  01101 10001 --------- 00001 ====>1 如果要计算13|17,则计算方法如下: 01101 10001 -------...
  • Python运算符优先级:以下表格列出了从最高到最低优先级的所有运算符运算符描述**指数 (最高优先级)~ + -按翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)* / % //乘,除,取模和取整除+ -加法减法>...
  • 常用的位运算符有&(按与)、|(按或)、^(按异或)、~(按取反),另外还有在单片机常用的开发运算符有&&(并且)、||(或者)、~(取反)、!(非)、、>>、、>>>、 运算把所需要运算的信息看作是二...
  • 三元运算符用法实例: 如名字表示的三元运算符需要三个操作数。 语法是 条件 ? 结果1 : 结果2;. 这里你把条件写在问号(?)的前面后面跟着用冒号(:)分隔的结果1和结果2。满足条件时结果1否则结果2。 代码如下: ...
  • 在知道基本用法之前肯定要先了解一下什么是运算符运算符就是对常量和变量进行操作的符号,它分为算数运算符、赋值运算符、比较运算符、逻辑运算符位运算符、三目运算符。算数运算符的种类+-*/%++--注:整数相除...
  • Java中7种位运算符使用方法发布时间:2020-05-29 21:09:10来源:亿速云阅读:487作者:鸽子很多编程语言都有位运算符,Java语言也不例外。在Java语言中,提供了7种位运算符,分别是按与(&)、按或(|)、按...
  • ~:按非操作符由一个波浪线(~)表示,执行按非的结果就是返回数值的反码。 代码如下:var num1 = 3; // 我的幸运数字是3var num2 = ~(num1);console.log(num2) // “-4”var num3 = -3; var num4 = ~(num3);...
  • 常见的位运算符

    千次阅读 2020-08-24 00:57:03
    1. 按运算符(&) 2. 按运算符(|) 3. 异或运算符(^) 4. 取反运算符 (~) 5. 左移运算符() 6. 右移运算符(>>) 「补充」 原码、补码、反码
  • 运算的运算符位运算符,原来的操作数有几,结果就有几,若两个操作数数不同,则位数短的操作数左端会自动补0。 (1)按取反:~  (2)按与:&  (3)按或:|  (4)按异或:^  (5)按...
  • js位运算符

    千次阅读 2019-05-13 16:32:25
    位运算符是在数字底层(即表示数字的32个数)进行操作的。 ECMAScript 整数有两种类型,即 有符号整数(允许用整数和负数)和 无符号整数(只允许用整数)。有符号整数使用31表示整数的数值,用第32表示...
  • 本文实例讲述了ES6扩展运算符和rest运算符用法。分享给大家供大家参考,具体如下: 运算符可以很好的为我们解决参数和对象数组未知情况下的编程,让我们的代码更健壮和简洁。 运算符有两种:对象扩展运算符与rest...
  • C语言位运算符详解

    千次阅读 多人点赞 2020-05-17 10:16:13
    目录位运算符简介1、按位运算符 简介 C语言既具有高级语言的特点,又具有低级语言的特性,如支持运算就是其具体体现。这是因为,C语言 1、按
  • js位运算符详解

    万次阅读 2019-06-29 16:34:06
    前言 平时的数值运算,其实是要先转换成二进制再进行运算的,而运算就是直接进行二进制运算。 运算是低级的运算操作,所以速度往往也是最快的(相对其它运算如加减乘除来说),并且借助...位运算符运算分为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 494,470
精华内容 197,788
关键字:

位运算符的用法