永发信息网

求救!! 按位取反又是怎样的?比如~0、~1、~2 、~-2 是怎样计算的?

答案:2  悬赏:30  手机版
解决时间 2021-02-11 15:53
  • 提问者网友:回忆在搜索
  • 2021-02-10 17:30
求救!! 按位取反又是怎样的?比如~0、~1、~2 、~-2 是怎样计算的?
最佳答案
  • 五星知识达人网友:胯下狙击手
  • 2021-02-10 18:49
直接计算公式~a=-(a+1);

原理:
转化成二进制,每位取反,0变1,1变0
~0 = ~(0000 0000)2 = (1111 1111)2=255
但是javascript默认是有符号的(-127到+126),所以要求补码(反码+1)再转为负数
(1111 1111)2的补码是(0000 0001)2符号位取反=(1000 0001)=-1

转到最后其实就是原码+1再转为负数,跟上面的公式是一样的~a=-(a+1);

~1 = ~(0000 0001)2 = (1111 1110)2 = (1000 0010)2 = -2
全部回答
  • 1楼网友:往事隔山水
  • 2021-02-10 20:16
你把信使服务关了就没有问题了. 很多windows xp用户在上网时遇到过突然弹出来的对话框,这些所谓的“信使服务”不但会打断我们的思路,内容也往往是一些商业广告,让人不胜其烦。实际上,在windows xp中,“信使服务”的主要作用是传递客户端和服务器之间的net send和alerter服务消息。但由于它在默认情况下是被激活的,因此一些厂商和网站利用这一点获取了我们的ip地址,大量发送广告和垃圾信息。如果你不喜欢它,就自己动手关闭它吧(据称,微软在windows xp sp2中已经关闭了这个不招人稀罕的“信使”)。 依次打开“开始→控制面板→性能和维护→管理工具→服务”,右键单击“alerter”(通常是列表中第一项)服务,在打开的菜单中选择“停止”,关闭“alerter”服务。然后拖动滚动条,找到“messenger”服务,在“messenger”上单击鼠标右键,在打开的菜单中选择“停止”。 需要注意的是,“messenger”服务的“启动类型”为“自动”,这表明就算我们关闭“messenger”服务,下次windows启动后,该服务也会再次自动加载,解决的方法是双击它,在打开的对话框中将“启动类型”设为“手动”。 当然,如果你觉得这些操作仍然过于复杂的话,可以用命令行的方式来关闭“信使”,方法是:单击“开始→运行”,在“打开”输入框中输入“net stop messenger”后回车,即可关闭“信使服务”。当然如果以后需要再次使用“信使服务”,在“打开”输入框中输入“net start messenger”后回车即可。停止和启动“alerter”服务的方法其实也雷同,只要把“net stop”后面的值改成“alerter”就可以了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯