Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

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

bit manipulation - C Programming - XOR Bitwise Operation

What operation does the following ‘C’ statement perform?

star = star ^ 0b00100100;

(A) Toggles bits 2 and 5 of the variable star.

(B) Clears all bits except bits 2 and 5 of the variable star.

(C) Sets all bits except bits 2 and 5 of the variable star.

(D) Multiplies value in the variable star with 0b00100100.

I'm still clueless about this. Can someone help me out?

See Question&Answers more detail:os

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

1 Reply

0 votes
by (71.8m points)

XOR operator (also called "logical addition") is defined like this:

a   b   a^b
-----------
0   0    0
0   1    1
1   0    1
1   1    0

So a^0 leaves a intact while a^1 toggles it.

For multiple-bit values, the operation is performed bitwise, i.e. between corresponding bits of the operands.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...