美文网首页
原码 补码 leetcode 137 python注意点

原码 补码 leetcode 137 python注意点

作者: remName | 来源:发表于2021-04-30 18:40 被阅读0次

二进制表示

计算机使用二进制表示数字,加入使用8位二进制表示数字,每位取0或1,能表示2^8=256个数。

方案1:如果只表示非负整数,则最小为全0,最大为全1(255),表示范围为0~255,一共256个数字。

方案2: 如果希望能同时表示负数和非负数,则可以将最高位表示为符号位,比如 最高位为0则表示正数,最高位为1则表示负数。这样可以表示范围为-127~+127(1111 1111 ~  0111 1111)一共能够表达 127*2+1=255个数字。这里包括127个负数,127个正数,还有一个0,比方案1少了一个数字,因为1000 0000 和 0000 000 都表示 0 ,虽然二进制形式不同,但是实际表示同一个数字。

方案3:因为方案2重复表示了0,所以本方案使用1000 0000 表示-128而不是负0,那么其他负数呢?以-127为例,-127 = -128+1。

-127 使用 1000 0000 + 1 = 1000 0001(方案2表示为1111 1111),在本方案中 1000 0000 + 0111 1111 = 1111 1111 表示 -128 + 127 = -1,因此 1111 1111 表示 -1。这种方案连续的表示了 -128~127这256个数字,其实就是补码的表示方法,当然补码最大的好处可以统一加减法。这里只介绍补码的表示意义。

leetcode 137题使用移位解法时,考虑到 当只出现 一次的数字是 负数时,需要考虑负数补码的含义。

相关文章

  • 原码 补码 leetcode 137 python注意点

    二进制表示 计算机使用二进制表示数字,加入使用8位二进制表示数字,每位取0或1,能表示2^8=256个数。 方案1...

  • python中的原码反码和补码

    python中的原码反码和补码 原码反码和补码的概念 原码:原码是二进制数字的一种简单的表示法。二进制首位为符号位...

  • 命题-第一章-简答

    写出十进制数-2的原码、补码、反码 【解析】 注意:1.计算机运算是以补码的形式进行的2.正数的原码、反码、补码都...

  • 原码、反码、补码和移码

    书中关于原码、反码、补码和移码的定义如下(n是机器字长):原码: 反码: 补码: 移码: 原码, 反码, 补码的基...

  • Java中的非运算~

    涉及到的概念:原码、补码涉及到的公式: (1)正数的原码 = 补码;(2)负数的 补码 = ( 原码 - 1 )再...

  • 软件测评师做题技巧

    第一类补码,反码,原码 正数:原码=反码;补码=原码负数:反码=原码求反;补码=反码+1 第二类用例概率的计算 测...

  • 2018-10-22 Python31 原码、反码、补码

    原码、反码、补码 1)如何计算补码?规则: 正数:原码 = 反码 = 补码负数:反码 = 符号位不变,其他位取反补...

  • 计算机为什么要使用原码、反码、补码

    1. 什么是原码、反码、补码 先看一个例子: +1和-1的原码、反码、补码的表示 原码、反码、补码的计算方式如下:...

  • 位运算

    1.原码、反码、 补码正数的原码、反码、 补码都一样 正数以原码存储在计算机负数 以补码存储在计算机 例...

  • 补码

    原码、反码、补码 原码:符号位 反码:减法变加法 补码:+1解决-0问题 数学原理 同余 反码:mod127 补码...

网友评论

      本文标题:原码 补码 leetcode 137 python注意点

      本文链接:https://www.haomeiwen.com/subject/zqanrltx.html