Javascript Tilde & Two's complement
Javascript Tilde & Two's complement
Two的补码法 - 生成-(x + 1)
.
例如,当 JavaScript 遇到波浪号时,他使用此方法:
~5 = -(5+1) = -6.
很好 - 让我们更深入。
现在让我们谈谈两者的补码方法。
5 = 0000 0101
Flip = 1111 1010
add one = 1111 1011
所以1111 1011
-5
.
如何?
再次 : 翻转 :
0000 0100
添加一个 :
0000 0101
所以它-5
.
那么这如何与~5=-6
解决呢?
这-6
从何而来?
,您需要意识到~
是按位翻转运算符,这与否定运算符-
不同。 ~
只执行按位翻转,但否定运算符-
按位翻转并加一个(对于整数(。
正如你所解释的,如果你想使用两个补码方法从正数n
到-n
,你可以按位翻转/不 n 并加 1。 ~n 只是按位并不意味着~n=-n-1
。
例如:
5 = 0000 0101
Flipped (~5) = 1111 1010
那么,1111 1010
代表哪个数字呢?由于第一个数字是 1,我们知道它是一个负值。要查找哪个值,请执行
-(flip(1111 1010) + 1) =
-(0000 0101 + 1)
-(0000 0110) =
-6
~5 = -(5 + 1) = -6
目前为止,一切都好。但是,~
不是两者的补码,而是二进制反转运算符。
5 = 0000 0101
flip : 1111 1010
即 -6
这说明清楚了吗?
~
是按位 NOT 运算符(仅反转其操作数的位(。
对于正数n
,
~n + 1 = -n
二的补码法 - 生成
-(x + 1)
.
简单地说,二的补码不会产生-(x + 1)
。一个人的补码确实如此(即 ~/按位 NOT/翻转位(。
二的赞美(翻转比特,加1(是我们用来用纯比特表示负数(并从中派生(的(-0
反(操作/编码。二的x
补将产生-x
。
~5
无非是将位0000 0101
翻转到1111 1010
。
为了确定1111 1010
的值,我们翻回到0000 0101
并添加 1:0000 0110 (-6)
。
tild(~( -
它只是flip(n(。 即 ~5 = flip(5(。在 java 脚本中,数字始终是 64 位有符号的。让我们仅以 8 位作为参考,
5==> 0000 0101
~5 ==> filp(0000 0101)
~5 ==> 1111 1010 ==> -6
2' 补语 -
它是 filp(n( + 1。
5 ==> 0000 0101
2's complement of 5 ==> flip(0000 0101) + 0000 0001
2's complement of 5 ==> 1111 1010 + 000 0001
2's complement of 5 ==> 1111 1011
5 = 0000 0101
翻转 = 1111 1010
转换细分 1111 1010
0 x 2^0 = 0
1 x 2^1 = 2
0 x 2^2 = 0
1 x 2^3 = 8
1 x 2^4 = 16
1 x 2^5 = 32
1 x 2^6 = 64
- 1 x 2^7 = -128
所以 -128+64+32+16+8+0+2+0 = -6
- Javascript Tilde & Two's complement
- Jquery mobile-如何在two.html中检索从one.html传递的数据
- Two input forms side-by-side programatically via JavaScript
- insertBefore on two class names
- Eventbus/Aggregator for two Requirejs apps
- 创建动态 Two.js 变量以涉及单个点击事件
- Brightcove two players API
- forEach() and Apply() methods for two dimensional array in J
- 如何使用two.js创建循环热点
- Jquery Ajax url two times
- Jquery Deffered Two Arrays Backbone
- 输入模式允许多个标签,用空格分隔(#one #two)
- CSS Flip Transition Between Two <div>'s
- 运行two async.并联串联
- JQuery CSS two values
- jQuery. Drag'n'Drop rows between two tables?
- 在myObj.one.two.three.field中,当字段有2个或更多嵌套级别时,通过路径字符串获取对象字段
- Can you automatically choose between two <script src=&quo
- Javascript正则表达式:如何检测url是否为http://
.one.two.com - Two.JS: '执行失败'removecchild '& # 39;节点# 39;当试图删除从