按位运算的有符号和无符号之间的差异

Lio*_*ior 2 unsigned signed bit-manipulation bitwise-operators

按位运算的有符号和无符号变量之间有什么区别吗?
例如,处理无符号数时:
AND 00000111, 00001101
将导致00000101.

但是在处理签名号码时会发生什么?

har*_*old 10

假设2的补码用于有符号数,那么关心有符号的操作(即它们对于位串的有符号和无符号解释是不同的)是:

  • 右转
  • 比较(平等除外)
  • 双倍乘法(在装配之外很少见)

签名无关的操作是:

  • 加成
  • 减法
  • 否定(-x手段~x + 1)
  • 按位和
  • 按位或
  • 按位xor
  • 按位不(~x均值-x - 1)
  • 左移
  • 乘法
  • 比较(仅限等式)