# Data Structures and Algorithm Analysis in C (2nd Edition) - page 9

 Algorithms and Data Structures in C++ by Alan Parker CRC Press, CRC Press LLC ISBN:  0849371716    Pub Date:  08/01/93

#### 1.2.3 Examples

This section presents examples of IEEE 32-bit and 64-bit floating point representations. Converting 100.5 to IEEE 32-bit notation is demonstrated in Example 1.1.

Determining the value of an IEEE 64-bit number is shown in Example 1.2. In many cases for problems as in Example 1.1 the difficulty lies in the actual conversion from decimal to binary. The next section presents a simple methodology for such a conversion.

#### 1.2.4 Conversion from Decimal to Binary

This section presents a simple methodology to convert a decimal number, A , to its corresponding binary representation. For the sake of simplicity, it is assumed the number satisfies

in which case we are seeking the a k such that

Example 1.1   IEEE 32-Bit Format

The simple procedure is illustrated in Code List 1.12. The C Code performing the decimal to binary conversion is shown in Code List 1.13. The output of the program is shown in Code List 1.14. This program illustrates the use of the default value. When a variable is declared as z is by data z , z is assigned 0.0 and precision is assigned 32. This can be seen as in the program z.prec( ) is never called and the output results in 32 bits of precision. The paper conversion for 0.4 is illustrated in Example 1.3.

### 1.3 Character Formats—ASCII

To represent keyboard characters, a standard has been adopted to ensure compatibility across many different machines. The most widely used standard is the ASCII (American Standard Code for Information Interchange) character set. This set has a one byte format and is shown in Table 1.8. It allows for 256 distinct characters and specifies the first 128. The lower ASCII characters are control characters which were derived from their common use in earlier machines.Although the ASCII standard is widely used, different operating systems use different file formats to represent data, even when the data files contain only characters . Two of the most popular systems, DOS and Unix differ in their file format. For example, the text file shown in Table 1.9 has a DOS format shown in Table 1.10 and a Unix format shown in Table 1.11. Notice that the DOS file use a carriage return, cr, followed by a new line, nl, while the Unix file uses only a new line. As a result Unix text files will be smaller than DOS text files. In the DOS and Unix tables, underneath each character is its ASCII representation in hex. The numbering on the left of each table is the offset in octal of the line in the file.

Example 1.2   Calculating the Value of an IEEE 64-Bit Number

Example 1.3   Converting 0.4 from Decimal to Binary

Code List 1.12 Decimal to Binary Conversion

Code List 1.13 Decimal to Conversion C++ Program

Code List 1.14 Output of Program in Code List 1.13

Table 1.8 ASCII Listing
ASCII Listing
oo nul
08 bs
10 dle
18 can
20 sp
28 (
30 0
38 8
40 @
48 H
50 P
58 X
60
68 h
70 p
78 x
01 soh
09 ht
11 dc1
19 em
21 !
29 )
31 1
39 9
41 A
49 I
51 Q
59 Y
61 a
69 i
71 q
79 y
02 stx
0a nl
12 dc2
1a sub
22 “
2a *
32 2
3a :
42 B
4a J
52 R
5a Z
62 b
6a j
72 r
7a z
03 etx
0b vt
13 dc3
1b esc
23 #
2b +
33 3
3b ;
43 C
4b K
53 S
5b [
63 c
6b k
73 s
7b {
04 eot
0c np
14 dc4
1c fs
24 \$
2c ,
34 4
3c <
44 D
4c L
54 T
5c \
64 d
6c l
74 t
7c
05 enq
0d cr
15 nak
1d gs
25 %
2d -
35 5
3d =
45 E
4d M
55 U
5d ]
65 e
6d m
75 u
7d }
06 ack
0e so
16 syn
1e rs
26 &
2e .
36 6
3e >
46 F
4e N
56 V
5e ^
66 f
6e n
76 v
7e ~
07 bel
0f si
17 etb
1f us
27 ‘
2f /
37 7
3f ?
47 G
4f O
57 W
5f _
67 g
6f o
77 w
7f del
Table 1.9 Text File
Test File
This is a test file
We will look at this file under Unix and DOS