“移位”的简单记忆

之前一直被移位所困扰着,不知大家是否也有这样的感慨呢?

经过我的不懈努力终于明白了其中的小窍门,现在请允许我悄悄的告诉大家!

移位:

要介绍移位当然事先要将听起来高大上的原码、反码和补码提一提。

原码:正整数的二进制数,对于负数而言来说绝对值的补码才是原码。

反码:在原码的基础上0和1互换。

补码:在反码的基础上加1。

正整数左移:(加大)首先求出原码,然后左移位数,在求值。

负整数左移:(减少)首先求绝对值的补码,然后左移,减一位变成补码,再变成反码,最后求值。

正整数右移:(减小)首先求原码,然后右移,再求值。(若是奇数求出来是-3.45,那就取-4,若是3.45那就取3)

负整数右移分为两种情况:(增大)

情况一 有符号:首先求绝对值的补码,然后右移,减一位求补码,再求反码,最后求值。

情况二 无符号:首先求绝对值的补码,然后右移,若最高位是1,则变为0,减1变为补码,在变成反码。共有32位。

posted @ 2016-03-16 10:37  木古章鱼  阅读(173)  评论(0编辑  收藏  举报