位运算:按位与、按位或、按位异或、按位非(补码 反码)
·
原码 补码 反码
计算机中的符号数有三种表示方法:原码、补码、反码。这三种表示方法都由符号位和数值位两部分组成,符号位1表示负数,0表示正数。
二进制数在内存中是以补码的形式存放的。为了更好理解计算机内部的运算,可以将其理解为二进制的补码的运算。
而我们日常所用的是十进制,日常从十进制转换成的二进制为二进制原码。
引入补码和原码是为了理解计算机运算,更方便计算机做减法,所以补码和反码的定义是指定的,无需证明。
反码:正数的反码为其本身,负数的反码是其原码除了符号位外全部按位取反。
补码:正数的补码为其本身,负数的补码是将其原码的反码+1。
补码求原码:就是对该补码再求补码得到的就是其原码。
注意:反码是不包含符号位的按位取反,和全部的按位取反是不一样的。
位运算
位运算有四种:按位与&、按位或 | 、按位异或^、按位非~
- & :任意二进制位与0进行&运算,结果是0;与1进行&运算,结果是其原值。a&0 = 0;a&1 = a。
- | :任意二进制位与0进行 | 运算,结果为其原值;与1进行 | 运算,结果为1。a | 0 = a;a | 1 = 1。
- ^ :任意相同二进制位进行^运算,结果为0;任意不同二进制位进行 ^ 运算,结果为1。
元素1 | 元素2 | &结果 | I 结果 | ^结果 |
---|---|---|---|---|
0 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 1 | 1 |
0 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 | 0 |
- ~ :按位取非,~ a = -(a+1)
~正数:①正数的二进制全部(包含符号位)按位取反(不是求反码),②对取反后的值除了符号位再取反即求反码,③+1。(其实就是取反符号位后+1)
~负数:①负数的二进制全部(包含符号位)按位取反,②+1,③不包含符号位再取反。
参考:按位取非的计算详解
更多推荐
相关推荐
查看更多
DeepSeek-V3-0324

DeepSeek最新推出DeepSeek-V3-0324版本,参数量从6710亿增加到6850亿,在数学推理、代码生成能力以及长上下文理解能力方面直线飙升。
Open-Sora

Open-Sora:为所有人实现高效视频制作
Python

All Algorithms implemented in Python
所有评论(0)