2

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

但是在处理带符号的数字时会发生什么?

4

2 回答 2

12

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

  • 分配
  • 模数
  • 右移
  • 比较(相等除外)
  • 双倍宽度乘法(在程序集之外很少见)

与签名无关的操作是:

  • 添加
  • 减法
  • 否定(-x意思~x + 1
  • 按位和
  • 按位或
  • 按位异或
  • 按位不(~x表示-x - 1
  • 左移
  • 乘法
  • 比较(仅相等)
于 2012-11-05T09:34:45.040 回答
1

无符号和有符号数字是对位串的解释。AND操作员没有这个概念,而是在单个位上工作。结果无论如何都是一样的。

于 2012-11-04T23:59:12.917 回答