位置: 编程技术 - 正文

javascript操作符"!~"详解(js操作对象的方法)

编辑:rootadmin

推荐整理分享javascript操作符"!~"详解(js操作对象的方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js中new操作符工作原理,javascript操作符,jsnew操作符,js 操作符重载,jsnew操作符,js 操作符重载,js new操作符做了什么,javascript操作符,内容如对您有帮助,希望把文章链接给更多的朋友!

快过年放假了,也终于闲下来了。每天游览于各种技术文章中,这种状态好极了。

下午看篇关于js的文章,其中有如下这么一段引起了我的注意。

if (!~names.indexOf(name)) 中的操作符"!~" 什么意思,不理解,先从~入手。

测试可以得出结果值有这个的规律 -(X+1)

javascript操作符

搜索一番,有的文章只丢一句:按二进制位取反

从字面意思,这里用八位二进制表示:3=,那~3=,套上面公式不对呀。上面解释还是太过抽象不具体。其实这涉及到原码、反码、补码的知识。

原码原码表示法最高位为符号位,该位为0表示正数,1表示负数。其余位表示数的绝对值。反码对于一个带符号的数来说,正数的反码与其原码相同;负数的反码为其原码除符号位以外的各位按位取反。反码常用来做求补码过程中的中间形式。补码正数的补码与其原码和反码相同;负数的补码是对它的原码除符号位以外各位取反,并在末位加1而得到,即为该数的补码加1。计算机内的数一般以补码形式表示。在补码中用(-)D代替了(-0)D,注意:(-)D没有相对应的原码和反码,(-)D = (,)B。求补运算求补运算不考虑符号位,对它的原码各位取反,并在末位加1而得到。对一个数进行求补运算所得的是该数相反数的补码。

拿作者文章例子,理解下

~是按位取反的意思,取反就是如果是,则变为 (按位取反)

的二进制表示为(1个字节):按位取反后(~)的二进制: 此表示为十进制:-这是一个负数,是有符号的数,负数在计算机里要用其补码来表示:补码=符号位以后按位取反再加1.所以-()符号位以后按位取反后为() 再加1 则为()换成十进制为:-因此~=-

至此算是终于搞明白了。虽然总结的公式能快速得出结果,但不能解释为什么,作为技术人我们喜欢钻研,深入细节。

感叹时间:

基础是一切上层的基石,潜心修道,路漫漫。

本文链接地址:https://www.jiuchutong.com/biancheng/383901.html 转载请保留说明!

上一篇:JavaScript中原型和原型链详解(js原型使用场景)

下一篇:javascript中var的重要性分析(javascript中var的作用)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络