zoukankan      html  css  js  c++  java
  • ECMAScript 运算符位运算符

    位运算符是在数字底层(即表示数字的 32 个数位)进行操作的

    重温整数

    ECMAScript 整数有两种类型,即有符号整数(允许用正数和负数)和无符号整数(只允许用正数)。在 ECMAScript 中,所有整数字面量默认都是有符号整数,这意味着什么呢?

    有符号整数使用 31 位表示整数的数值,用第 32 位表示整数的符号,0 表示正数,1 表示负数。数值范围从 -2147483648 到 2147483647。

    可以以两种不同的方式存储二进制形式的有符号整数,一种用于存储正数,一种用于存储负数。正数是以真二进制形式存储的,前 31 位中的每一位都表示 2 的幂,从第 1 位(位 0)开始,表示 20,第 2 位(位 1)表示 21。没用到的位用 0 填充,即忽略不计

    位运算 NOT

    位运算 NOT 由否定号(~)表示,它是 ECMAScript 中为数不多的与二进制算术有关的运算符之一。

    位运算 NOT 是三步的处理过程:

    1. 把运算数转换成 32 位数字
    2. 把二进制数转换成它的二进制反码
    3. 把二进制数转换成浮点数

    位运算 AND

    位运算 AND 由和号(&)表示,直接对数字的二进制形式进行运算

    位运算 OR

    位运算 OR 由符号(|)表示,也是直接对数字的二进制形式进行运算

    位运算 XOR

    位运算 XOR 由符号(^)表示,当然,也是直接对二进制形式进行运算。XOR 不同于 OR,当只有一个数位存放的是 1 时,它才返回 1。

    左移运算

    左移运算由两个小于号表示(<<)。它把数字中的所有数位向左移动指定的数量

    有符号右移运算

    有符号右移运算符由两个大于号表示(>>)。它把 32 位数字中的所有数位整体右移,同时保留该数的符号(正号或负号)。有符号右移运算符恰好与左移运算相反

    无符号右移运算

    无符号右移运算符由三个大于号(>>>)表示,它将无符号 32 位数的所有数位整体右移。对于正数,无符号右移运算的结果与有符号右移运算一样。

  • 相关阅读:
    DLL相关注意
    给我个理由要用虚析构函数
    字符指针常量和字符数组
    给自己普及网络基本知识
    面向对象三大基本特性,五大基本原则
    C/C++内存区域划分
    C++多态性
    Java XML Schema详解
    Java SE 第一百零五讲 对象的克隆与浅拷贝
    Java SE 第九十七~一百零五讲 线程与进程
  • 原文地址:https://www.cnblogs.com/xiaozhanga4/p/2478719.html
Copyright © 2011-2022 走看看