当前位置: 首页 > 知识库问答 >
问题:

为什么-~x等于x 1?[关闭]

孙才捷
2023-03-14

在2006年的模糊C代码竞赛中。请解释sykes2。c

有一个语句“-~i==i 1,因为两个补码”。

有人能解释一下为什么会这样吗?


共有1个答案

淳于乐池
2023-03-14

-~x等于x 1,因为~x等于(0xffffffff-x)。这相当于2s补码中的(-1-x),因此-~x-(-1-x)=x1

 类似资料:
  • 问题内容: 我正在阅读本文: 在SQL中获取null == null 共识是,当尝试测试两个(可空)sql列之间的相等性时,正确的方法是: 当A和B为时,(A = B)仍返回FALSE,因为NULL不等于NULL。这就是为什么需要额外检查的原因。 检验不平等情况如何?经过以上讨论,我认为要测试不平等,我需要做一些类似的事情: 但是,我注意到这不是必需的(至少在informix 11.5上没有),我

  • 我发誓我在上VB的时候。net课程在大学里,有一种更短的方法告诉变量将“”添加到自身中。也许x=1。不过,我现在使用的是Access,而不是visual studio。当我在VBE中尝试时,它会删除。我甚至删除了,没有任何更改 假设答案是否定的,那就没有捷径了

  • 问题内容: 我在ColdFusion代码中碰巧遇到了这些值,但Google计算器似乎有相同的“错误”,但差不为零。 416582.2850-411476.8100-5105.475 = -2.36468622461E-011 http://www.google.com/search?hl=zh_CN&rlz=1C1GGLS_enUS340US340&q=416582.2850+-+411476.8

  • 问题内容: 我有以下代码: 旨在将物料价格初始化为0,然后获取有关其的信息。如果价格被告知为“ e”,则表示交换而不是卖出,其作为负数存储在数据库中。 也有可能将价格保留为0,这是因为该项目是奖励商品,或者是因为价格将在以后设置。 但是,每当未设置价格时,其初始值将为0,则上述循环将评估为true,并将价格设置为-1。也就是说,它认为0等于“ e”。 如何解释呢? 当价格提供为0(初始化后)时,该

  • 问题内容: 在Java中,当我说。我得到与答案相同的值,即包含。我已经在C ++中验证了同样的内容。 为什么会这样呢? 问题答案: 阅读Joshua Bloch撰写的Effective Java中的内容。 我找到了这个问题的答案,这里是解释:计算机使用二进制算术工作,java或任何语言的函数的逻辑如下: 注意:如何找到2的补码 对于给定的数字,我们首先找到它的补数,然后再加1。例如,假设我们的数字

  • 问题内容: 为什么在Python中等于?它不应该像那样抛出异常吗? 问题答案: Wikipedia对历史进行了有趣的报道,并对以下内容的价值有不同的看法: 至少从19世纪初期开始,辩论一直在进行。当时,大多数数学家都同意,直到1821年,柯西(Cauchy)以及诸如未定义形式的表格之类的表达式才被列出。在1830年代,利比里(Libri)发表了令人信服的论点,莫比乌斯(Möbius)站在他身边。