美文网首页
位操作符

位操作符

作者: 蘑菇酱960903 | 来源:发表于2018-03-31 19:49 被阅读0次

负数表示负数绝对值的二进制的反码加一

按位非 (~)

~num ---> 返回num的反码 本质:操作数的负值减1,但是按位非实在数值表示的最底层执行操作的,所以运行速度会更快

按位与 (&)

num1 & num2 ----> num1和num2数值的二进制的每一位对齐,当两个数值同为1时返回1,有0时返回0

按位

num1 | num2 --->num1和num2数值的二进制的每一位对齐,当两个数值有一个为1时,返回1,两个都为0时返回0

按位异或 (^)

num1 ^ num2 ---> num1和num2数值对应为上只有一个1时返回,如果两个同为1或者0返回0 特点:a两次异或同一个数返回a (a = a ^ b ^ b 返回a)
用途:

  • 能实现两个值得交换,不必使用临时变量
    例如交换两个整数a=10100001,b=00000110的值,可通过下列语句实现:
        a = a^b;   //a=10100111
        b = b^a;   //b=10100001
        a = a^b;   //a=00000110
  • 快速判断两个值是否相等
    判断两个整数a,b是否相等,则可通过下列语句实现:
    return ((a ^ b) == 0)
左移 (<<)

num << 5 ---> 这个操作符会将数值的所有位向左移动指定的位数,用0补充,左移不会影响操作数的符号位,如果将 -2 << 5 得到 -64

有符号右移 (>>)

num >> 5 ----> 这个操作符会将数值向右移动,但保留符号位,用符号位填充空位

无符号位右移 (>>>)

num >>> 5 ----> 让数值包括符号位会向右移动,正数的无符号右移与有符号右移一致。而负数的无符号位移会先得出二进制码(负数的绝对值的二进制码的反码),再右移用0补充,最后转换成十进制

相关文章

  • JavaScript高程读书笔记(2)

    五、操作符 算数操作符、位操作符、关系操作符、 相等操作符 一元操作符++和--:注意a+++,- 位操作符按位非...

  • C语言 key points(extern,auto,type

    关键操作符号:&&: 并且||:或者*:解引用操作符或间接操作符。&: 取地址<<:位bite移符号 左移 :位b...

  • c语言第七讲 操作符和表达式

    目标 操作符介绍 表达式求值 操作符号 操作符的分类 算术操作符 移位操作符 位操作符 赋值操作符 单目运算符 关...

  • 5. 从头学前端之操作符

    操作符包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作符。 一元操作符 只能操作一个值的操作符叫做一...

  • 位操作

    c++中位操作操作符 这些位操作符只能用于整形的操作,其他会编译报错。位操作符的运算优先级比较低,因为尽量使用括号...

  • JavaScript操作符

    原文 博客原文 大纲 前言1、一元操作符2、位操作符3、布尔操作符(逻辑操作符)4、乘性操作符5、加性操作符6、关...

  • JavaScript基本概念(操作符,语句,函数)

    操作符包括算术操作符、位操作符、关系操作符、相等操作符。操作符一般用于数值型,如果不是数值型会被转换成数值型,对象...

  • ES笔记—基础之操作符篇

    描述:用于操作数据值的操作符,包括算术操作符(如加号和减号)、位操作符、关系操作符和相等操作符。 1、一元操作符 ...

  • Cpp:位操作符

    位操作符:位操作符操作的整数可以是有符号或无符号数。 下面的例子,假设unsigned char有8位: ~: 类...

  • 第三章 JavaScript基本概念(三)

    4. 操作符   ECMA-262描述了一组用于操作数据值的操作符,包括算术操作符,位操作符,关系操作符和相等操作...

网友评论

      本文标题:位操作符

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