Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
495 views
in Technique[技术] by (71.8m points)

bit manipulation - Difference between signed and unsigned on bitwise operations

Is there any difference between signed and unsigned variables on bitwise operations?
For example,when dealing with unsigned numbers:
AND 00000111, 00001101
will result 00000101.

But what would happen when dealing with signed numbers?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

Assuming 2's complement is used for signed numbers, operations that care about signedness (ie they are different for the signed and unsigned interpretation of a bitstring) are:

  • division
  • modulo
  • right shift
  • comparisons (except equality)
  • double-width multiplication (rare outside of assembly)

Operations for which signedness is irrelevant are:

  • addition
  • subtraction
  • negation (-x means ~x + 1)
  • bitwise and
  • bitwise or
  • bitwise xor
  • bitwise not (~x means -x - 1)
  • left shift
  • multiplication
  • comparison (equality only)

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

2.1m questions

2.1m answers

60 comments

56.9k users

...