C++ 位操作

整数的二进制表示

原码、反码、补码

原码:
一个正数的原码,是按照绝对值大小转换成的二进制数;
一个负数的原码,是按照绝对值大小转换成的二进制数,然后最高位补1。
比如:
00000000 00000000 00000000 00000101是 5的 原码。
10000000 00000000 00000000 00000101是 -5的 原码

反码:
正数的反码就是源码
负数10000000 00000000 00000000 00000101每一位取反(除符号位),得11111111 11111111 11111111 11111010

补码:
正数的补码就是源码
负数的补码就是反码加1

自己的理解:要知道正数在计算机中表示的就是它的源码,负数在计算机里是用补码来表示,该加法器操作就操作

参考:
负数的二进制表示

位操作

掌握基本的操作
与: &
或: |
异或: ^
取反: ~
左移: <<
右移: >>

掌握常用位操作小技巧:
判断奇偶
交换两数
变换符号
求绝对值

参考:
C++:位操作基础篇之位操作全面总结

posted @ 2021-12-17 23:31  Weighting  阅读(112)  评论(0编辑  收藏  举报