Hex Bit Arithmetic & UEMU
CS 301 Lecture, Dr. Lawlor, 2005/09/14
Arithmetic In Hex
& |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
0 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
0 |
0 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
0 |
1 |
2 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
4 |
0 |
0 |
0 |
0 |
4 |
|
|
|
|
|
|
|
|
|
|
|
5 |
0 |
1 |
0 |
1 |
4 |
5 |
|
|
|
|
|
|
|
|
|
|
6 |
0 |
0 |
2 |
2 |
4 |
4 |
6 |
|
|
|
|
|
|
|
|
|
7 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
|
|
|
|
|
|
|
|
8 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
8 |
|
|
|
|
|
|
|
9 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
8 |
9 |
|
|
|
|
|
|
A |
0 |
0 |
2 |
2 |
0 |
0 |
2 |
2 |
8 |
8 |
A |
|
|
|
|
|
B |
0 |
1 |
2 |
3 |
0 |
1 |
2 |
3 |
8 |
9 |
A |
B |
|
|
|
|
C |
0 |
0 |
0 |
0 |
4 |
4 |
4 |
4 |
8 |
8 |
8 |
8 |
C |
|
|
|
D |
0 |
1 |
0 |
1 |
4 |
5 |
4 |
5 |
8 |
9 |
8 |
9 |
C |
D |
|
|
E |
0 |
0 |
2 |
2 |
4 |
4 |
6 |
6 |
8 |
8 |
A |
A |
C |
C |
E |
|
F |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
Bitwise AND operation.
You should verify that X&0=-0, X&0xF==X, and X&X==X
| |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
2 |
3 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
3 |
3 |
3 |
3 |
|
|
|
|
|
|
|
|
|
|
|
|
4 |
4 |
5 |
6 |
7 |
4 |
|
|
|
|
|
|
|
|
|
|
|
5 |
5 |
5 |
7 |
7 |
5 |
5 |
|
|
|
|
|
|
|
|
|
|
6 |
6 |
7 |
6 |
7 |
6 |
7 |
6 |
|
|
|
|
|
|
|
|
|
7 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
7 |
|
|
|
|
|
|
|
|
8 |
8 |
9 |
A |
B |
C |
D |
E |
F |
8 |
|
|
|
|
|
|
|
9 |
9 |
9 |
B |
B |
D |
D |
F |
F |
9 |
9 |
|
|
|
|
|
|
A |
A |
B |
A |
B |
E |
F |
E |
F |
A |
B |
A |
|
|
|
|
|
B |
B |
B |
B |
B |
F |
F |
F |
F |
B |
B |
B |
B |
|
|
|
|
C |
C |
D |
E |
F |
C |
D |
E |
F |
C |
D |
E |
F |
C |
|
|
|
D |
D |
D |
F |
F |
D |
D |
F |
F |
D |
D |
F |
F |
D |
D |
|
|
E |
E |
F |
E |
F |
E |
F |
E |
F |
E |
F |
E |
F |
E |
F |
E |
|
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
F |
Bitwise OR operation. X|0==X, X|0xF==0xF, X|X==X
^ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
2 |
3 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
4 |
4 |
5 |
6 |
7 |
0 |
|
|
|
|
|
|
|
|
|
|
|
5 |
5 |
4 |
7 |
6 |
1 |
0 |
|
|
|
|
|
|
|
|
|
|
6 |
6 |
7 |
4 |
5 |
2 |
3 |
0 |
|
|
|
|
|
|
|
|
|
7 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
|
|
|
|
|
|
|
|
8 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
|
|
|
|
|
|
|
9 |
9 |
8 |
B |
A |
D |
C |
F |
E |
1 |
0 |
|
|
|
|
|
|
A |
A |
B |
8 |
9 |
E |
F |
C |
D |
2 |
3 |
0 |
|
|
|
|
|
B |
B |
A |
9 |
8 |
F |
E |
D |
C |
3 |
2 |
1 |
0 |
|
|
|
|
C |
C |
D |
E |
F |
8 |
9 |
A |
B |
4 |
5 |
6 |
7 |
0 |
|
|
|
D |
D |
C |
F |
E |
9 |
8 |
B |
A |
5 |
4 |
7 |
6 |
1 |
0 |
|
|
E |
E |
F |
C |
D |
A |
B |
8 |
9 |
6 |
7 |
4 |
5 |
2 |
3 |
0 |
|
F |
F |
E |
D |
C |
B |
A |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Bitwise Exclusive OR (XOR). X^0==X, X^0xF=~X, X^X==0
bits |
3
|
2
|
1
|
0
|
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
2 |
0 |
0 |
1 |
0 |
3 |
0 |
0 |
1 |
1 |
4 |
0 |
1 |
0 |
0 |
5 |
0 |
1 |
0 |
1 |
6 |
0 |
1 |
1 |
0 |
7 |
0 |
1 |
1 |
1 |
8 |
1 |
0 |
0 |
0 |
9 |
1 |
0 |
0 |
1 |
A |
1 |
0 |
1 |
0 |
B |
1 |
0 |
1 |
1 |
C |
1 |
1 |
0 |
0 |
D |
1 |
1 |
0 |
1 |
E |
1 |
1 |
1 |
0 |
F |
1 |
1 |
1 |
1 |
Bits in a hexadecimal digit. Bits are written in the usual order, with lower bits on the right.
ASCII |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A |
B |
C |
D |
E |
F |
0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
! |
" |
# |
$ |
% |
& |
' |
( |
) |
* |
+ |
, |
- |
. |
/ |
3 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
: |
; |
< |
= |
> |
? |
4 |
@ |
A |
B |
C |
D |
E |
F |
G |
H |
I |
J |
K |
L |
M |
N |
O |
5 |
P |
Q |
R |
S |
T |
U |
V |
W |
X |
Y |
Z |
[ |
\ |
] |
^ |
_ |
6 |
` |
a |
b |
c |
d |
e |
f |
g |
h |
i |
j |
k |
l |
m |
n |
o |
7 |
p |
q |
r |
s |
t |
u |
v |
w |
x |
y |
z |
{ |
| |
} |
~ |
|
8 |
€ |
�
|
‚ |
ƒ |
„ |
… |
† |
‡ |
ˆ |
‰ |
Š |
‹ |
Œ |
�
|
Ž |
�
|
9 |
�
|
‘ |
’ |
“ |
” |
• |
– |
— |
˜ |
™ |
š |
› |
œ |
�
|
ž |
Ÿ |
A |
|
¡ |
¢ |
£ |
¤ |
¥ |
¦ |
§ |
¨ |
© |
ª |
« |
¬ |
|
® |
¯ |
B |
° |
± |
² |
³ |
´ |
µ |
¶ |
· |
¸ |
¹ |
º |
» |
¼ |
½ |
¾ |
¿ |
C |
À |
Á |
 |
à |
Ä |
Å |
Æ |
Ç |
È |
É |
Ê |
Ë |
Ì |
Í |
Î |
Ï |
D |
Ð |
Ñ |
Ò |
Ó |
Ô |
Õ |
Ö |
× |
Ø |
Ù |
Ú |
Û |
Ü |
Ý |
Þ |
ß |
E |
à |
á |
â |
ã |
ä |
å |
æ |
ç |
è |
é |
ê |
ë |
ì |
í |
î |
ï |
F |
ð |
ñ |
ò |
ó |
ô |
õ |
ö |
÷ |
ø |
ù |
ú |
û |
ü |
ý |
þ |
ÿ |
ASCII table. Horizontal axis gives the low hex digit,
vertical axis the high hex digit, and the entry is ASCII for that hex
digit. E.g., "A" is 0x41.
UEMU
Just see the UEMU page.