重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
首先你要明白原码、反码、补码三个概念。
公司主营业务:网站建设、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出六安免费做网站回馈大家。
整数的都相等
负数的反码就是符号位除外,零变一,一变零
补码就是反码的基础上加1
加1是如下变化的,转十进制各位数就是8421
0001
0010
0011
0100
0101
0110
js规定非零非空即真。
undefined、null、0、NaN、""
除了上诉几个值在转换成布尔值会转成false外,其他任何对象任何值转成布尔值都是true
因为取反就是把对象转换成bool值的,所以会先把num转成布尔值,然后再取反得到true。
然后在弹出。。。
------------------------------------
不对啊,按这逻辑应该弹出true的。
逻辑取反 !
false == !true
按位取反运算符: ~
~ 5 == - 6
Javascript 按位取反运算符 (~) ,对一个表达式执行位非(求非)运算。如 ~1 = -2 ; ~2 = -3 ; ~99 = -100
复制代码代码如下:
result = ~ 【数字】
所有一元运算符(如 ~ 运算符)都按照下面的规则来计算表达式的值:
复制代码代码如下:
1、 如果应用于未定义的表达式或 null 表达式,则会引发一个运行时错误。
2、 将对象转换为字符串。
3、 如果可能,将字符串转换为数字。 否则,将引发运行时错误。
4、 布尔值被视为数字(如果为 false,则为 0;如果为 true,则为 1)。
运算符将应用于结果数字。
~ 运算符查看表达式的二进制表示形式的值,并执行位非运算。
表达式中的任何一位为 1,则结果中的该位变为 0。 表达式中的任何一位为 0,则结果中的该位变为 1。
下面的示例阐释了位非 (~) 运算符的用法,其中包含二进制表示十进制负数的,如果不熟悉这个请先看懂《十进制负数转换为二进制、八进制、十六进制》。
复制代码代码如下:
var temp = ~5;
/*
5 二进制 101,补满 32位
00000000000000000000000000000101
按位取反
11111111111111111111111111111010
由于32位开头第一个是1,所以这是一个负数,将二进制转换成负数,需要先反码
00000000000000000000000000000101
之后,再+1
00000000000000000000000000000110
转换成十进制为6,加上符号变成负数 -6
*/
alert(temp);
// 弹出【-6】