首页 > 其他 > 详细

操作符中的按位非

时间:2021-01-06 14:00:04      阅读:17      评论:0      收藏:0      [点我收藏+]

按位非操作符由一个波浪线(~)表示,执行按位非的结果就是返回数值的反码。

按位非是ECMAScript操作符中少数几个与二进制计算有关的操作符之一。

var num1 = 25;                  // 二进制0000 0000 0000 0000 0000 0000 0001 1001
var num2 = ~num1;               // 二进制1111 1111 1111 1111 1111 1111 1110 0110
alert(num2);                    // -26

正数的补码 = 正数 本身

负数的补码 = 本身取反 +1

num1 = 25 的补码:0000 0000 0000 0000 0000 0000 0001 1001

按位非 取反码得到:1111 1111 1111 1111 1111 1111 1110 0110

第一位是符号位,反码第一位为 1 ,反码为负数,num2为负数

负数补码取反+1

取反后为:0000 0000 0000 0000 0000 0000 0001 1001

取反+1得:0000 0000 0000 0000 0000 0000 0001 1010

num2的补码:0000 0000 0000 0000 0000 0000 0001 1010

num2为 -26

正数:补码(x) = x

负数:补码(x) = -x - 1,

操作符中的按位非

原文:https://www.cnblogs.com/xiaoanbucai/p/14240108.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!