This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Simon The ^ operator is the 'exclusive or' that operates on the individual bits of the operands. In the example you gave 0x67^0xBD The way to do it is to convert the hex into binary. I have to go through decimal to do it 0x67 is 103 in decimal and 0xBD is 189, in binary they are (remember that ints are 4 bytes): 00000000 00000000 00000000 01100111 00000000 00000000 00000000 10111101 the results of your 'exclusive or' are: 00000000 00000000 00000000 11011010 which equates to: 218 in decimal or 0xDA in hex. Remember the ^ means that the result is one if one, but not the other, of the bits is a 1. hope that helps
Originally posted by simon kumar: Hi, can anyone tell me what is the simplest way to calculate 0x67^0xBD,the result is 0xDA simon
Convert to binary! Every hexadecimal number is equivalent to 4 bits. Therefore, you can convert from hex to binary very easily. 0x67 = 01100111 0xBD = 10111101 Now, just XOR the bits: 0x67^0xBD = 11011010 Then, convert back to hex: 1101 = D 1010 = A Therefore, your final answer is 0xDA. Happy hexing! Corey