Outline ¡
- Integer ¡representa+on ¡and ¡opera+ons ¡
- Bit ¡opera+ons ¡
- Floa+ng ¡point ¡numbers ¡
Reading ¡Assignment: ¡
– Chapter ¡2 ¡Integer ¡& ¡Float ¡Number ¡Representa+on ¡ related ¡content ¡(Sec+on ¡2.2, ¡2.3, ¡2.4) ¡
1 ¡
Outline Integer representa+on and opera+ons Bit opera+ons - - PowerPoint PPT Presentation
Outline Integer representa+on and opera+ons Bit opera+ons Floa+ng point numbers Reading Assignment: Chapter 2 Integer & Float Number Representa+on
1 ¡
2 ¡
1 ¡and ¡3 ¡è ¡exclusive ¡OR ¡(^) ¡ 2 ¡and ¡4 ¡è ¡and ¡(&) ¡ 5 ¡è ¡or ¡(|) ¡
* ¡Always ¡start ¡ with ¡a ¡carry-‑in ¡
Did ¡it ¡work? ¡ What ¡is ¡a? ¡ ¡ What ¡is ¡b? ¡ What ¡is ¡a+b? ¡ What ¡if ¡8 ¡bits ¡instead ¡of ¡4? ¡
– where ¡w ¡is ¡the ¡bit ¡width ¡of ¡the ¡data ¡type ¡
– Minimum ¡value: ¡0 ¡ – *Maximum ¡value: ¡2w-‑1 ¡
– *Minimum ¡value: ¡-‑2w-‑1 ¡ – *Maximum ¡value: ¡2w-‑1-‑1 ¡ ¡
3 ¡
4 ¡
CODE 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 B2U 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B2T 1 2 3 4 5 6 7
5 ¡
CODE 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 B2U 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B2T 1 2 3 4 5 6 7
B2O 1 2 3 4 5 6 7
B2S 1 2 3 4 5 6 7
6 ¡
CODE 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 B2U 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 B2T 1 2 3 4 5 6 7
7 ¡
EXPRESSION ¡ TYPE ¡ EVALUATION ¡ 0 ¡= ¡= ¡0u ¡ unsigned ¡ 1 ¡
signed ¡ 1 ¡
unsigned ¡ 0* ¡ 2147483647 ¡> ¡-‑2147483647-‑1 ¡ signed ¡ 1 ¡ 2147483647u ¡> ¡-‑2147483647-‑1 ¡ unsigned ¡ 0* ¡ 2147483647 ¡> ¡(int) ¡2147483647u ¡ signed ¡ 1* ¡
signed ¡ 1 ¡ (unsigned) ¡-‑1 ¡> ¡-‑2 ¡ unsigned ¡ 1 ¡
ß ¡1 ¡= ¡TRUE ¡and ¡0 ¡= ¡FALSE ¡ ß #define ¡ ¡INT_MIN ¡ ¡ ¡(-‑INT_MAX ¡– ¡1 ¡
¡ ¡ ¡ ¡ ¡ ¡ ¡*** ¡how ¡is ¡-‑8 ¡represented ¡in ¡T2U? ¡ ¡
8 ¡
w ¡= ¡8 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡for ¡+27 ¡= ¡ ¡ ¡00011011 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡=> ¡invert ¡+ ¡1 ¡for ¡-‑27 ¡= ¡ ¡ ¡11100101 ¡ ¡ ¡ w=16 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡00000000 ¡00011011 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡11111111 ¡11100101 ¡
HEX ¡ UNSIGNED ¡– ¡ B2U ¡ TWO'S ¡COMP ¡– ¡ B2T ¡
trunc ¡
trunc ¡ 0 ¡ 0 ¡ 0 ¡ 0 ¡ 0 ¡ 0 ¡ 2 ¡ 2 ¡ 2 ¡ 2 ¡ 2 ¡ 2 ¡ 9 ¡ 1 ¡ 9 ¡ 1 ¡
1 ¡ B ¡ 3 ¡ 11 ¡ 3 ¡
3 ¡ F ¡ 7 ¡ 15 ¡ 7 ¡
9 ¡
x ¡ y ¡ x+y ¡ result ¡
1000 ¡
1011 ¡
10011 ¡ 3 ¡ negOF ¡
1000 ¡
1000 ¡
10000 ¡ 0 ¡ negOF ¡
1000 ¡ 5 ¡ 0101 ¡
11101 ¡
2 ¡ 0010 ¡ 5 ¡ 0101 ¡ 7 ¡ 00111 ¡ 7 ¡
5 ¡ 0101 ¡ 5 ¡ 0101 ¡ 10 ¡ 01010 ¡
posOF ¡ x ¡ y ¡ x+y ¡ result ¡ 8 ¡ 1000 ¡ 5 ¡ 0101 ¡ 13 ¡ 1101 ¡ 13 ¡
8 ¡ 1000 ¡ 7 ¡ 0111 ¡ 15 ¡ 1111 ¡ 15 ¡
12 ¡ 1100 ¡ 5 ¡ 0101 ¡ 17 ¡ 10001 ¡ 1 ¡ OF ¡ Nega+ve ¡overflow ¡when ¡x+y ¡< ¡-‑2w-‑1 ¡ Pos+ve ¡overflow ¡when ¡x+y ¡>= ¡2w-‑1 ¡
– Reminder: ¡B2U=B2T ¡for ¡posi+ve ¡values ¡ – B2U ¡à ¡invert ¡the ¡bits ¡and ¡add ¡one ¡
–
– Other ¡values ¡are ¡negated ¡by ¡integer ¡nega+on ¡ – Bit ¡pakerns ¡generated ¡by ¡two’s ¡complement ¡are ¡the ¡same ¡as ¡for ¡unsigned ¡nega+on ¡
10 ¡
GIVEN ¡ NEGATION ¡ HEX ¡ binary ¡ base ¡10 ¡ base ¡10 ¡ binary* ¡ HEX ¡ 0x00 ¡0b00000000 ¡ 0 ¡ 0 ¡ 0b00000000 ¡0x00 ¡ 0x40 ¡0b01000000 ¡ 64 ¡
0b11000000 ¡0xC0 ¡ 0x80 ¡0b10000000 ¡
0b10000000 ¡0x80 ¡ 0x83 ¡0b10000011 ¡
125 ¡ 0b01111101 ¡0x7D ¡ 0xFD ¡0b11111101 ¡
3 ¡ 0b00000011 ¡0x03 ¡ 0xFF ¡ 0b11111111 ¡
1 ¡ 0b00000001 ¡0x01 ¡
*binary ¡= ¡invert ¡the ¡bits ¡and ¡add ¡1 ¡
11 ¡
1 1 1 1 1 1 0 0 12 ¡-‑> 1 1 9 ¡-‑> 0 0 0 0 1 0 0 1 9 ¡-‑> 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 <-‑ ¡carry <-‑ ¡carry 1 0 0 0 1 1 0 1 1 1 0 0 ¡= ¡-‑36? 1 1 1 1 0 ¡= ¡108? 8-‑bit ¡multiplication 8-‑bit ¡multiplication
B2T ¡8-‑bit ¡range ¡à ¡-‑128 ¡to ¡127 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡B2U ¡8-‑bit ¡range ¡à ¡0 ¡to ¡255 ¡ ¡ B2U ¡= ¡252*9 ¡= ¡2268 ¡(too ¡big) ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡B2T ¡= ¡same ¡ Typically, ¡if ¡doing ¡8-‑bit ¡mul+plica+on, ¡you ¡want ¡16-‑bit ¡product ¡ loca+on ¡i.e. ¡2w ¡bits ¡for ¡the ¡product ¡ ¡
12 ¡
binary ¡ unsigned ¡ two's ¡comp ¡ result ¡ 0111*0011 ¡ 7*3=21=00010101 ¡ same ¡ 0101 ¡ 21 ¡mod ¡16 ¡= ¡5 ¡ same ¡ 1001*0100 ¡ 9*4=36=00100100 ¡
0100 ¡ fyi ¡ 36 ¡mod ¡16 ¡= ¡4 ¡
1100*0101 ¡ 12*5=60=00111100 ¡
1100 ¡ 60 ¡mod ¡16 ¡= ¡12 ¡
1101*1110 ¡ 13*14=182=10110110 ¡ -‑3*-‑2=6=00000110 ¡ 0110 ¡ 182 ¡mod ¡16 ¡= ¡6 ¡ 6 ¡mod ¡16 ¡= ¡6 ¡ 1111*0001 ¡ 15*1=15=00001111 ¡
1111 ¡ 15 ¡mod ¡16 ¡= ¡15 ¡
Ø Equivalent ¡to ¡compu+ng ¡the ¡product ¡(x*y) ¡modulo ¡2w ¡ Ø Result ¡interpreted ¡as ¡an ¡unsigned ¡value ¡
– Power ¡of ¡2 ¡represented ¡by ¡k ¡ – So ¡k ¡zeroes ¡added ¡in ¡to ¡the ¡right ¡side ¡of ¡x ¡
– Overflow ¡issues ¡the ¡same ¡as ¡x*y ¡
– Every ¡binary ¡value ¡is ¡an ¡addi+on ¡of ¡powers ¡of ¡2 ¡ – Has ¡to ¡be ¡a ¡run ¡of ¡one’s ¡to ¡work ¡
rightmost ¡
– “mul+plica+on ¡of ¡powers” ¡where ¡K ¡= ¡7 ¡= ¡0111 ¡= ¡22+21+20 ¡
– Also ¡equal ¡to ¡23 ¡– ¡20 ¡= ¡8 ¡– ¡1 ¡= ¡7 ¡
– Shi[ing, ¡adds ¡and ¡subtracts ¡are ¡quicker ¡calcula+ons ¡than ¡ mul+plica+on ¡(2.41) ¡ – Op+miza+on ¡for ¡C ¡compiler ¡
13 ¡
What ¡is ¡x*4 ¡where ¡x ¡= ¡5? ¡ x ¡= ¡5 ¡= ¡00000101 ¡ ¡ 4 ¡= ¡2k, ¡so ¡k ¡= ¡2 ¡ x<<k ¡= ¡00010100 ¡= ¡20 ¡ What ¡if ¡x ¡= ¡-‑5? ¡ x ¡= ¡5, ¡n ¡= ¡2 ¡and ¡m ¡= ¡0 ¡ x*7 ¡= ¡35? ¡ x<<2 ¡+ ¡x<<1+x<<0 ¡ 00010100 ¡ 00001010 ¡ 00000101 ¡ 00100011 ¡= ¡35? ¡ OR ¡ 00101000 ¡ 11111011 ¡ 00100011 ¡
14 ¡
15 ¡
– Logical ¡-‑ ¡unsigned ¡ – Arithme+c ¡– ¡two’s ¡complement ¡
– C ¡float-‑to-‑integer ¡casts ¡round ¡towards ¡zero. ¡ ¡ – These ¡rounding ¡errors ¡generally ¡accumulate ¡
16 ¡
8÷2 1 0 0 9÷2 1 12÷4 1 1 15÷4 1 1 10 1 0 0 0 10 1 1 100 1 1 100 1 1 1 1 1 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1
What ¡if ¡the ¡binary ¡numbers ¡are ¡B2T? ¡Problem ¡with ¡last ¡example… ¡
– x ¡divided ¡by ¡2k ¡and ¡then ¡rounding ¡toward ¡zero ¡ – Pull ¡in ¡zeroes ¡ – Example ¡x ¡= ¡12 ¡
– Example ¡x ¡= ¡15 ¡
– Example ¡
17 ¡
18 ¡
k Decimal
1 0 1 0 1 1 1 0
1 1 1 0 1 0 1 1 1
2 1 1 1 0 1 0 1 1
3 1 1 1 1 0 1 0 1
4 1 1 1 1 1 0 1 0
5 1 1 1 1 1 1 0 1
Binary
y Dec ¡(rd) (x+y-‑1)/y 1
2
4
8
16
32
same ¡binary
For ¡now… ¡ Corrected… ¡
For ¡integers ¡x ¡and ¡y ¡such ¡that ¡y ¡> ¡0 ¡ ¡ Example: ¡x=-‑30, ¡y=4 ¡
Ø x+y-‑1=-‑27 ¡and ¡-‑30/4 ¡(ru) ¡= ¡-‑7 ¡= ¡-‑27/4 ¡(rd) ¡
Example ¡x=-‑32 ¡and ¡y=4 ¡
Ø x+y-‑1=-‑29 ¡and ¡-‑32/4 ¡(ru) ¡= ¡-‑8=-‑29/4 ¡(rd) ¡
19 ¡
x / y = ( x + y
1 ) / y
– One ¡declared ¡as ¡type ¡char ¡or ¡int ¡ ¡
– Expand ¡hex ¡arguments ¡to ¡their ¡binary ¡representa+ons ¡ – Perform ¡binary ¡opera+on ¡ – Convert ¡back ¡to ¡hex ¡
20 ¡ value ¡of ¡x ¡ machine ¡rep ¡ mask ¡ type ¡of ¡x ¡and ¡mask ¡ c ¡expr ¡ result ¡ note ¡ 153 ¡(base ¡10) ¡ 0b10011001 ¡ ¡== ¡0x99 ¡ 0b10000000 ¡== ¡0x80 ¡ char ¡ ¡ x ¡& ¡mask ¡ 0b10000000 ¡== ¡0x80 ¡ 2^7 ¡= ¡128 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ mask ¡>> ¡1 ¡ 0b01000000 ¡== ¡0x40 ¡ 2^6 ¡= ¡64 ¡(etc) ¡ ¡ ¡ ¡ ¡ 0b01000000 ¡== ¡0x40 ¡ ¡ ¡ x ¡& ¡mask ¡ 0b00000000 ¡== ¡0x00 ¡ ¡ ¡ ¡ ¡ 153 ¡(base ¡10) ¡ 0b10011001 ¡ ¡== ¡0x99 ¡ 0b10000000 ¡== ¡0x80 ¡ int ¡ x ¡& ¡mask ¡ 0b10000000 ¡== ¡0x80 ¡ same ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ x ¡<< ¡1 ¡ ??? ¡ ¡ ¡
– What ¡if ¡le[ ¡shi[ ¡a ¡signed ¡value? ¡Oh ¡well… ¡
– sign ¡specifica+on ¡default ¡in ¡C ¡is ¡“signed” ¡ – Almost ¡all ¡compilers/machines ¡do ¡repeat ¡sign ¡(most) ¡
21 ¡
22 ¡
– *+ ¡and ¡&| ¡
– a*(b+c) ¡= ¡(a*b) ¡+ ¡(a*c) ¡
– a&(b|c) ¡= ¡(a&b) ¡| ¡(a&c) ¡
– a|(b&c) ¡= ¡(a|b) ¡& ¡(a|c) ¡
– a+(b*c) ¡<> ¡(a+b) ¡* ¡(a+c)… ¡for ¡all ¡integers ¡
– Every ¡value ¡has ¡an ¡addi+ve ¡inverse ¡–x, ¡such ¡that ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡x ¡+ ¡-‑x ¡= ¡0 ¡ – a^a ¡= ¡0 ¡each ¡element ¡is ¡its ¡own ¡addi+ve ¡inverse ¡
– *y ¡= ¡*x ¡^ ¡*y; ¡ – *x ¡= ¡*x ¡^ ¡*y; ¡ – *y ¡= ¡*x ¡^ ¡*y; ¡
23 ¡
Don’t ¡worry ¡about ¡dereferencing ¡issues… ¡just ¡subs+tute ¡ If ¡*y ¡= ¡*x^*y, ¡then ¡the ¡next ¡line ¡is ¡equal ¡to ¡ ¡*x ¡= ¡*x ¡^ ¡(*x ¡^ ¡*y) ¡so ¡*x ¡= ¡*y ¡ And ¡*y ¡= ¡(*x^*x^*y) ¡^ ¡*x^*y ¡= ¡*x ¡
24 ¡
– Meaning: ¡
– Digit ¡format: ¡ ¡dmdm-‑1…d1d0 ¡. ¡d-‑1d-‑2…d-‑n ¡ – dnum ¡à ¡summa+on_of(i ¡= ¡-‑n ¡to ¡m) ¡di ¡* ¡10i ¡ ¡
– Meaning: ¡
– Digit ¡format: ¡bmbm-‑1…b1b0 ¡. ¡b-‑1b-‑2…b-‑n ¡ – bnum ¡à ¡summa+on_of(i ¡= ¡-‑n ¡to ¡m) ¡bi ¡* ¡2i ¡ ¡
power ¡and ¡those ¡on ¡the ¡right ¡are ¡weighted ¡by ¡nega+ve ¡powers ¡
25 ¡
– Divides ¡the ¡number ¡by ¡2 ¡ – Compare ¡101.11 ¡base ¡2 ¡with ¡10.111 ¡base ¡2 ¡
– Mul+plies ¡the ¡number ¡by ¡2 ¡ – Compare ¡101.11 ¡base ¡2 ¡with ¡1011.1 ¡base ¡2 ¡
base ¡2 ¡= ¡63/64 ¡
– 1/3 ¡and ¡5/7 ¡cannot ¡be ¡represented ¡exactly ¡
x ¡* ¡2y ¡i.e. ¡63/64 ¡= ¡63*2-‑6 ¡
– Otherwise, ¡approximated ¡ – Increasing ¡accuracy ¡= ¡lengthening ¡the ¡binary ¡representa+on ¡but ¡s+ll ¡have ¡ finite ¡space ¡
26 ¡
27 ¡
28 ¡
– The ¡single ¡sign ¡bit ¡s ¡directly ¡encodes ¡the ¡sign ¡s ¡ – The ¡k-‑bit ¡exponent ¡field ¡encodes ¡the ¡exponent ¡
– The ¡n-‑bit ¡frac+on ¡field ¡encodes ¡the ¡significand ¡M ¡(but ¡the ¡value ¡ encoded ¡also ¡depends ¡on ¡whether ¡or ¡not ¡the ¡exponent ¡field ¡equals ¡0… ¡ later) ¡
– Single ¡precision ¡(float) ¡ – Double-‑Precision ¡(double) ¡
29 ¡
Sign ¡ Exponent ¡ Frac+on ¡ Bias ¡ Single ¡Precision ¡(4 ¡bytes) ¡ 1 ¡[31] ¡ 8 ¡[30-‑23] ¡ 23 ¡[22-‑00] ¡ 127 ¡ Double ¡Precision ¡(8 ¡bytes) ¡ 1 ¡[63] ¡ 11 ¡[62-‑52] ¡ 52 ¡[51-‑00] ¡ 1023 ¡
– 0 ¡denotes ¡a ¡posi+ve ¡number; ¡1 ¡denotes ¡a ¡nega+ve ¡number. ¡Flipping ¡ the ¡value ¡of ¡this ¡bit ¡flips ¡the ¡sign ¡of ¡the ¡number. ¡ ¡ ¡
– A ¡bias ¡is ¡added ¡to ¡the ¡actual ¡exponent ¡in ¡order ¡to ¡get ¡the ¡stored ¡
– For ¡IEEE ¡single-‑precision ¡floats, ¡this ¡value ¡is ¡127. ¡Thus, ¡an ¡exponent ¡of ¡ zero ¡means ¡that ¡127 ¡is ¡stored ¡in ¡the ¡exponent ¡field. ¡A ¡stored ¡value ¡of ¡ 200 ¡indicates ¡an ¡exponent ¡of ¡(200-‑127), ¡or ¡73. ¡For ¡reasons ¡discussed ¡ later, ¡exponents ¡of ¡-‑127 ¡(all ¡0s) ¡and ¡+128 ¡(all ¡1s) ¡are ¡reserved ¡for ¡ special ¡numbers. ¡ ¡ – For ¡double ¡precision, ¡the ¡exponent ¡field ¡is ¡11 ¡bits, ¡and ¡has ¡a ¡bias ¡of ¡
30 ¡
word ¡– ¡the ¡value ¡stored ¡is ¡offset ¡from ¡the ¡actual ¡value ¡by ¡the ¡exponent ¡bias. ¡ ¡
represent ¡both ¡4ny ¡and ¡huge ¡values, ¡but ¡two's ¡complement, ¡the ¡usual ¡representa4on ¡for ¡ signed ¡values, ¡would ¡make ¡comparison ¡harder. ¡
put ¡it ¡within ¡an ¡unsigned ¡range ¡suitable ¡for ¡comparison. ¡
¡
exponent ¡in ¡the ¡middle, ¡then ¡the ¡man+ssa ¡in ¡the ¡least ¡significant ¡bits, ¡the ¡resul+ng ¡value ¡will ¡ be ¡ordered ¡properly, ¡whether ¡it's ¡interpreted ¡as ¡a ¡floa+ng ¡point ¡or ¡integer ¡value. ¡This ¡allows ¡ high ¡speed ¡comparisons ¡of ¡floa+ng ¡point ¡numbers ¡using ¡fixed ¡point ¡hardware. ¡
¡
¡
to ¡get ¡a ¡value ¡in ¡the ¡range ¡1 ¡.. ¡254 ¡(0 ¡and ¡255 ¡have ¡special ¡meanings). ¡
1023 ¡to ¡get ¡a ¡value ¡in ¡the ¡range ¡1 ¡.. ¡2046 ¡(0 ¡and ¡2047 ¡have ¡special ¡meanings). ¡
31 ¡
32 ¡
FYI: ¡A ¡nice ¡likle ¡op+miza+on ¡is ¡available ¡to ¡us ¡in ¡base ¡two, ¡since ¡the ¡only ¡ possible ¡non-‑zero ¡digit ¡is ¡1. ¡Thus, ¡we ¡can ¡just ¡assume ¡a ¡leading ¡digit ¡of ¡1, ¡and ¡ don't ¡need ¡to ¡represent ¡it ¡explicitly. ¡As ¡a ¡result, ¡the ¡man+ssa/significand ¡has ¡ effec+vely ¡24 ¡bits ¡of ¡resolu+on, ¡by ¡way ¡of ¡23 ¡frac+on ¡bits. ¡
33 ¡
– sign ¡= ¡0 ¡; ¡ ¡ – e ¡= ¡1 ¡; ¡ ¡ – s ¡= ¡110010010000111111011011 ¡(including ¡the ¡hidden ¡bit) ¡ – The ¡sum ¡of ¡the ¡exponent ¡bias ¡(127) ¡and ¡the ¡exponent ¡(1) ¡is ¡128, ¡so ¡this ¡is ¡represented ¡in ¡ single ¡precision ¡format ¡as ¡
¡ ¡ ¡ ¡ ¡0 ¡10000000 ¡10010010000111111011011 ¡ ¡ ¡ ¡ ¡ ¡(excluding ¡the ¡hidden ¡bit) ¡= ¡0x40490FDB ¡ ¡
s ¡= ¡1.10010010000111111011011 ¡with ¡e ¡= ¡1. ¡This ¡has ¡a ¡decimal ¡value ¡of ¡
value ¡of ¡π ¡is ¡
true ¡value ¡by ¡about ¡0.03 ¡parts ¡per ¡million, ¡and ¡matches ¡the ¡decimal ¡ representa+on ¡of ¡π ¡in ¡the ¡first ¡7 ¡digits. ¡The ¡difference ¡is ¡the ¡discre4za4on ¡error ¡ and ¡is ¡limited ¡by ¡the ¡machine ¡epsilon. ¡ ¡
34 ¡
expansion ¡(0.5) ¡while ¡the ¡number ¡1/3 ¡does ¡not ¡(0.333...). ¡ ¡
(such ¡as ¡1/2 ¡or ¡3/16) ¡are ¡termina+ng. ¡Any ¡ra+onal ¡with ¡a ¡ denominator ¡that ¡has ¡a ¡prime ¡factor ¡other ¡than ¡2 ¡will ¡have ¡an ¡ infinite ¡binary ¡expansion. ¡
35 ¡
– What ¡number(s) ¡cannot ¡be ¡represented ¡because ¡of ¡this? ¡
36 ¡
S E F hidden ¡bit 0.0 0 ¡or ¡1 all ¡zero all ¡zero subnormal 0 ¡or ¡1 all ¡zero not ¡all ¡zero normalized 0 ¡or ¡1 >0 any ¡bit ¡pattern 1 +infinity 11111111 00000… ¡(0x7f80 ¡0000)
1 11111111 00000… ¡(0xff80 ¡0000) NaN* 0 ¡or ¡1 0xff anything ¡but ¡all ¡zeros * ¡Not ¡a ¡Number
37 ¡
Note ¡the ¡transi+on ¡between ¡denormalized ¡and ¡normalized ¡ Have ¡to ¡always ¡check ¡for ¡the ¡hidden ¡bit ¡
e: ¡the ¡value ¡represented ¡by ¡ considering ¡the ¡exponent ¡field ¡to ¡ be ¡an ¡unsigned ¡integer ¡
¡
E: ¡the ¡value ¡of ¡the ¡exponent ¡a[er ¡ biasing ¡= ¡e ¡-‑ ¡bias ¡ ¡
¡
2E: ¡numeric ¡weight ¡of ¡the ¡exponent ¡
¡
f: ¡the ¡value ¡of ¡the ¡frac+on ¡
¡
M: ¡the ¡value ¡of ¡the ¡significand ¡=1+f ¡ ==1.f ¡
¡
2ExM: ¡the ¡(unreduced) ¡frac+onal ¡ value ¡of ¡the ¡number ¡
¡
V: ¡the ¡reduced ¡frac+onal ¡value ¡of ¡ the ¡number ¡
¡
Decimal: ¡the ¡decimal ¡ representa+on ¡of ¡the ¡number ¡
bits e E 2E f M 2ExM V Decimal
0 ¡00 ¡00 1 0/4 0/4 0/4 0.00 0 ¡00 ¡01 1 1/4 1/4 1/4 1/4 0.25 0 ¡00 ¡10 1 2/4 2/4 2/4 1/2 0.50 0 ¡00 ¡11 1 3/4 3/4 3/4 3/4 0.75 0 ¡01 ¡00 1 1 0/4 4/4 4/4 1 1.00 0 ¡01 ¡01 1 1 1/4 5/4 5/4 5/4 1.25 0 ¡01 ¡10 1 1 2/4 6/4 6/4 3/2 1.50 0 ¡01 ¡11 1 1 3/4 7/4 7/4 7/4 1.75 0 ¡10 ¡00 2 1 2 0/4 0/4 8/4 2 2.00 0 ¡10 ¡01 2 1 2 1/4 1/4 10/4 5/2 2.50 0 ¡10 ¡10 2 1 2 2/4 2/4 12/4 3 3.00 0 ¡10 ¡11 2 1 2 3/4 3/4 14/4 7/2 3.50 0 ¡11 ¡00
inf
0 ¡11 ¡01
NaN
0 ¡11 ¡10
NaN
0 ¡11 ¡11
NaN
– Provide ¡a ¡way ¡to ¡represent ¡numeric ¡value ¡0 ¡
– Represents ¡numbers ¡that ¡are ¡very ¡close ¡to ¡0.0 ¡
38 ¡
39 ¡
unsigned ¡number ¡that ¡has ¡a ¡fixed ¡"bias" ¡added ¡to ¡it. ¡ ¡
values ¡of ¡all ¡1s ¡are ¡reserved ¡for ¡the ¡infini+es ¡and ¡NaNs. ¡ ¡
[−1022, ¡1023] ¡for ¡double. ¡ ¡
40 ¡
Type ¡ ¡ Sign ¡ ¡Exponent ¡ ¡ Significand ¡ ¡ Total ¡ bits ¡ ¡ Exponent ¡ bias ¡ ¡ Bits ¡ precision ¡ ¡ #decimal ¡ digits ¡ Half ¡ ¡ (IEEE ¡754-‑2008) ¡ ¡ 1 ¡ 5 ¡ 10 ¡ 16 ¡ 15 ¡ 11 ¡ ~3.3 ¡ Single ¡ ¡ 1 ¡ 8 ¡ 23 ¡ 32 ¡ 127 ¡ 24 ¡ ~7.2 ¡ Double ¡ ¡ 1 ¡ 11 ¡ 52 ¡ 64 ¡ 1023 ¡ 53 ¡ ~15.9 ¡
41 ¡
42 ¡
43 ¡
Opera4on ¡ Result ¡ ¡ n ¡÷ ¡±Infinity ¡ ¡ 0 ¡ ¡ ±Infinity ¡× ¡±Infinity ¡ ¡ ±Infinity ¡ ¡ ±nonzero ¡÷ ¡0 ¡ ¡ ±Infinity ¡ ¡ Infinity ¡+ ¡Infinity ¡ ¡ Infinity ¡ ¡ ±0 ¡÷ ¡±0 ¡ ¡ NaN ¡ ¡ Infinity ¡-‑ ¡Infinity ¡ ¡ NaN ¡ ¡ ±Infinity ¡÷ ¡±Infinity ¡ ¡ NaN ¡ ¡ ±Infinity ¡× ¡0 ¡ ¡ NaN ¡
44 ¡
45 ¡