Type

advertisement
EPSII
59:006
Spring 2004
Numbers in Computers



Why use data types?
Number systems - binary, octal, decimal,
hexadecimal
Data representation - bits, bytes, words (of
different sizes)
 Types
 Integer
 Char
 Float, Double
 Signed, Unsigned
Data Types
Variables are names for places in memory
There are different types of variables
Different variables require different amounts
of information to store them
In C the main types are:
char, int, float, double
How the Computer Stores
Variables


Computers must code each variable into series
of electronic “on” and “off” switches.
Information (both instructions and data) are
represented by binary codes (1’s and O’s).
Binary Numbers









0 == 0
1 == 1
10 == 2
11 == 3
100 == 4
101== 5
110 == 6
111 == 7
1000 == 8



1111 == 15
1000 0000 == 128
1111 1111 == 255
Breaking It Down!








Binary:
a3*23 + a2*22 + a1*21 + a0*20
1001 = 1*23 + 0*22 + 0*21 + 1*20
1001 = 1*8 + 0*4 + 0*2 + 1*1
1001 = 8+1
1001 = 9
Decimal:
a3 a2 a1 a0 = a3 * 103 + a2*102 + a1*101 + a0*100
Question
What does
0001 1101
Equal in decimal?
Solution
0001
1101
= 16 + 8 + 4 + 1
= 29
Hexadecimal
Binary is a pain to work with because the
representation is so long
 There are 16 possible combination of 4
binary digits

Hexadecimal Code








0000 == 0 == 0
0001 == 1 == 1
0010 == 2 == 2
0011 == 3 == 3
0100 == 4 == 4
0101 == 5 == 5
0110 == 6 == 6
0111 == 7 == 7








1000 == 8 == 8
1001 == 9 == 9
1010 == 10 == A
1011 == 11 == B
1100 == 12 == C
1101 == 13 == D
1110 == 14 == E
1111 == 15 == F
Question

What is the octal code?
Answer
a3a2a1a0 Octal =
 a3*83 + a2*82 + a1*81 + a0*80

Exercise

Convert A9 to binary

Convert 1101 1100 to Hex
Solution

Convert A9 to binary
 1010

1001
Convert 1101 1100 to Hex
D
C
How Do All These Bits Get
Organized?






byte n. - A sequence of adjacent bits, usually
eight, operated on as a unit by a computer.
word n. - Computer Science. A set of bits
constituting the primary unit of addressable
memory.
4 bits = nibble = 16 states (24)
8 bits = byte = 256 states (28)
16 bits = word = 65536 states (216) => 64K
Memory is arranged in bytes – each individual
address points to the beginning of a byte.
How are variables stored?

Characters are stored as numbers:
 ASCII
: ftp://dkuug.dk/i18n/WG15collection/charmaps/ANSI_X3.4-1968
 Unicode over 65000 characters – every written
language.



Integers stored as binary
Floating point numbers are stored with limited
precision according to the IEEE standard.
Double precision floats (type double) are
preferred for numerical calculations.
Standard Variable Type Storage
Type
Used For
Storage (bytes)
int
Integers
char
Characters
4 (usually, but is really
implementation-dependent)
1
float
Real numbers
4
double Real numbers
8
Other Variable Types
Type
unsigned
short
positive
Integers
integers
4 (usually, but is really
implementation-dependent)
2
long
integers
4 (usually)
Variable Type Storage
Type
Storage
(bytes)
int
4
char
1
float
4
double 8
Range of Values
-2147483648 to
2147483647
-128 to 127
-1.17549435e-38 to
3.40282347e+38
-2.2250738585072014e-308 to
1.7976931348623157e+308
Finding variable sizes for your
computer

Use the sizeof() function:
 printf(“An
int is %d bytes ”,sizeof(int));
 printf(“and a char is %d bytes\n”,sizeof(char));
Download