java

原码补码快速互转

基础

  • 大家都知道,对于计算机中的运算,都是以二进制的形式计算,在计算机系统中,数值一律用补码来表示和存储, 那么很多时候,原码,反码,补码的计算是很烦人的(对于我来说吧),所以有一种简单的方式:
  • 记住,以下是原码和补码互换的(负数),正数的补码反码和原码是一样的,这个你应该知道吧

规则

  • 从数的右边往左开始数,遇到“0”不理它,直到遇到第一个“1”为止,以后的每一位数取反即是它的原码或补码,符号位不变,还是“1”(补码的补码是原码)

实例

  • 如:11010100 (原码求补码)----- 从右往左数,第一位是0,不理它,第二位还是0不理它,第三位是1,那么从此以后的每位取反,即为它的补码了.答案为:10101100
    看懂了吗?
  • 如:101011 (原码求补码)---- 从右往左数,第一位是1,那么,以后每位都取反,来吧,跟我来,倒数第一位是1,倒数第二位是0(因为要取反了),倒数第三位是1,倒数第四位是0,倒数第五位是1,第六位是符号位,还是1.那么,最后的结果就是:110101
    它的反码当然只是求反而已了(除符号位之外的其它各位都取反即可),答案为:110100
  • 补码为101011,那么它的原码是什么?
    按照我刚说的,补码的补码就是原码了.对这个数求补试试看.
    会吗?一样的.从可往左数,倒数第一位是1,那么以后每位都取反就成它的原码了(因为这个数是一个补码),答案就是:110101

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!
文章若有侵权请立即与我联系, 我将及时处理
微信扫一扫,向我赞赏

微信扫一扫,向我赞赏

微信扫一扫,向我赞赏

支付宝扫一扫,向我赞赏

回复

This is just a placeholder img.
Title - Artist
0:00