我的编程空间,编程开发者的网络收藏夹
学习永远不晚

javascript如何进行按位求反

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

javascript如何进行按位求反

这篇文章主要为大家展示了“javascript如何进行按位求反”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript如何进行按位求反”这篇文章吧。

在javascript中,可以利用“~”操作符来实现按位求反,语法“~ 运算数”;“~”操作符可以将指定运算数转为二进制整数形式,并对该二进制操作数逐位进行取反操作。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

在javascript中,可以利用“~”操作符来实现按位求反。如~1 = -2,~-3=2,~true=-2,~false=-1

“~”操作符可以查看指定值的二进制表示形式,并对该二进制操作数逐位进行取反操作

  • 第 1 步:把运算数转换为 32 位的二进制整数。

  • 第 2 步:逐位进行取反操作。

  • 第 3 步:把二进制反码转换为十进制浮点数。

对 12 进行位非运算,则返回值为 -13。

console.log( ~ 12 );  //返回值-13

下图以算式的形式解析了对 12 进行位非运算的过程。

javascript如何进行按位求反

如何按位取反计算

  按位取反的运算规则步骤:

  1、十进制转成原码

  转成二进制原码,最高位是符号位,0为正数,1为负数

    十进制   ---->  原码
      1   ---->  00000001
     -1   ---->  10000001
  2、原码转成反码

  正数的反码就是原码,负数的反码是符号位不变,其余位取反

    十进制  ---->   原码    ---->  反码
      1    ----> 00000001 ----> 00000001
     -1    ----> 10000001 ----> 11111110
  3、反码转成补码

  正数的补码还是原码,负数的补码是在反码的基础上加1

    十进制  ---->    原码   ---->   反码   ---->  补码
      1    ----> 00000001 ----> 00000001 ----> 00000001
     -1    ----> 10000001 ----> 11111110 ----> 11111111
  4、补码取反得原码

  正整数补码取反之后符号位置为1,是一个负整数,所以再按照负整数计算补码的方式逆运算得到原码

  逆运算得到原码,首先将取反的补码转成反码,公式:反码=补码 - 1,然后将反码转成原码,符号位不变,其他位取反

  十进制  ---->    原码    ---->   反码    ---->   补码     ---->  补码取反   ---->  取反补码转成反码  ---->  转成原码
    1   ----> 00000001  ----> 0000001  ---->  00000001  ----> 11111110   ---->   11111101    ---->  10000010

  负整数补码取反之后符号位置为0,是一个正整数,因正整数的反码与补码就是本身,所以不需要再进行逆运算

  十进制  ---->    原码    ---->   反码     ---->   补码      ---->   补码取反得原码  
    -1  ---->  10000001  ----> 11111110  ---->  11111111   ---->     00000000    
  5、将原码转成二进制
 十进制  ---->    原码    ---->   反码    ---->   补码     ---->  补码取反   ---->  取反补码转成反码  ---->  转成原码  ---->  转成二进制
    1   ----> 00000001  ----> 0000001  ---->  00000001  ----> 11111110   ---->   11111101    ---->  10000010 ---->   -2
  十进制  ---->    原码    ---->   反码     ---->   补码      ---->   补码取反得原码   ---->  转成二进制
    -1  ---->  10000001  ----> 11111110  ---->  11111111   ---->    00000000     ---->     0

  所以,~1=-2,~-1=0

取反再取反~~的作用

  操作符~, 是按位取反的意思,表面上~~(取反再取反)没有意义,实际上在JS中可以将浮点数变成整数。

 console.log(~~1.11);          //1
 console.log(~~-25.11);       //-25

以上是“javascript如何进行按位求反”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

javascript如何进行按位求反

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

php中如何进行按位运算

本篇内容介绍了“php中如何进行按位运算”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、按位与(&)运算按位与运算是指将两个二进制数的对应
2023-07-06

php如何将字符串按单词进行反转

这篇文章主要介绍了php如何将字符串按单词进行反转,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。反转方法:1、使用“explode( ,$str)”语句将字符串转为数组;2、
2023-06-25

css如何进行定位

这篇文章给大家分享的是有关css如何进行定位的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。css的全称是什么css的全称是Cascading Style Sheets(层叠样式表),它是一种用来表现HTML或XM
2023-06-14

html如何进行定位

这篇文章将为大家详细讲解有关html如何进行定位,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。html定位的方法:首先创建一个HTML示例文件;然后使用a标签写好3个菜单以及内容;接着给每个内容标题的a标
2023-06-15

java如何进行反编译

反编译的过程与编译刚好相反,就是将已编译好的编程语言还原到未编译的状态,也就是找出程序语言的源代码。就是将机器看得懂的语言转换成程序员可以看得懂的语言。Java语言中的反编译一般指将class文件转换成java文件。Java常用反编译工具本文主要介绍4个Jav
java如何进行反编译
2017-09-06

JavaScript如何使用按位双非运算符

这篇文章给大家分享的是有关JavaScript如何使用按位双非运算符的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。按位双非运算符按位双非运算符可以替代Math.floor()方法。//Longhand cons
2023-06-27

Python中如何实现真正的按位取反运算

按位取反是位运算符,而位运算符是应用在两个数的运算上,会对数字的二进制所有位数进行从低到高的运算,下面这篇文章主要给大家介绍了关于Python中如何实现真正的按位取反运算的相关资料,需要的朋友可以参考下
2023-02-07

javascript如何进行累加

这篇文章将为大家详细讲解有关javascript如何进行累加,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。javascript实现累加的方法:首先创建相应的js示例文件;然后通过“for(var i =
2023-06-15

Centos8如何进行复位清屏

小编给大家分享一下Centos8如何进行复位清屏,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!清屏一般是指清除命令行模式下的字,因为字太多了会很乱吧。所以偶尔需要清屏。不同操作系统清屏的命令不一样,dos下或者是Windo
2023-06-10

php如何进行字符串反转义

这篇文章主要讲解了“php如何进行字符串反转义”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php如何进行字符串反转义”吧!在php中,可以利用stripslashes()函数来进行字符串反
2023-06-20

php数组元素如何进行反转

这篇文章主要介绍“php数组元素如何进行反转”,在日常操作中,相信很多人在php数组元素如何进行反转问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php数组元素如何进行反转”的疑惑有所帮助!接下来,请跟着小编
2023-06-21

编程热搜

目录