• Tidak ada hasil yang ditemukan

Chapter 04b Bits, Bytes and Number System

N/A
N/A
Protected

Academic year: 2018

Membagikan "Chapter 04b Bits, Bytes and Number System"

Copied!
59
0
0

Teks penuh

(1)

Page 1

Chapter 4

Bits and Bytes

Why bits?

Representing information as bits

Binary/Hexadecimal

Byte representations

Representing Expressing in C

Simple Gates and Circuits

Why Don’t Computers Use Base 10?

Base 10 Number Representation

That’s why fingers are known as “digits”

Natural representation for financial transactions

Floating point number cannot exactly represent $1 20

Floating point number cannot exactly represent $1.20

Even carries through in scientific notation

1.5213 X 104

Implementing Electronically

Hard to store

ENIAC (First electronic computer) used 10 vacuum tubes / digitC ( st e ect o c co pute ) used 0 acuu tubes / d g t

Hard to transmit

Need high precision to encode 10 signal levels on single wire

Messy to implement digital logic functions

(2)

Page 2

Binary Representations

Base 2 Number Representation

Represent 1521310as 111011011011012

Represent 1.2010as 1.0011001100110011[0011]…2

Represent 1 5213 X 104 as 1 1101101101101 X 213

Represent 1.5213 X 104 as 1.1101101101101 2X 213

Electronic Implementation

Easy to store with bistable elements

Reliably transmitted on noisy and inaccurate wires

0 1 0

0.0V 0.5V 2.8V 3.3V

Introduction to Information Technology, Diplome FMIPA UGM

Most computers are digital

 Recognize only two discrete states: on or off

 Use a binary systemto recognize two states

(3)

Page 3

Introduction to Information Technology, Diplome FMIPA UGM

What is a byte?

Eight bits grouped together as a unit

Provides enough different combinations of 0s and 1s to represent 256 individual charactersp

 Numbers

 Uppercase and lowercase letters

 Punctuation marks

(ascii 3)

(ascii 5)

marks

(ascii D)

Byte-Oriented Memory Organization

Programs Refer to Virtual Addresses

Conceptually very large array of bytes

Actually implemented with hierarchy of different memory types SRAM DRAM disk

SRAM, DRAM, disk

Only allocate for regions actually used by program

In Unix and Windows NT, address space private to particular “process”

Program being executed

Program can clobber its own data, but not that of others

Compiler + Run-Time System Control Allocation

Where different program objects should be stored

Multiple mechanisms: static, stack, and heap

(4)

Page 4

Machine Words

Machine Has “Word Size”

Nominal size of integer-valued dataNominal size of integer valued data

Including addresses

Most current machines are 32 bits (4 bytes)

Limits addresses to 4GB

Becoming too small for memory-intensive applications

High-end systems are 64 bits (8 bytes)

Potentially address 1.8 X 1019bytes

Machines support multiple data formats

Machines support multiple data formats

Fractions or multiples of word size

Always integral number of bytes

Word-Oriented Memory Organization

Addresses Specify Byte

0000 0001 0002

32-bit

Words Bytes Addr. 64-bit Words Addr = 0000 Locations

Address of first byte in word

Addresses of successive words differ by 4 (32-bit) or 8 (64-bit)

(5)

Page 5

Sizes of C Objects (in Bytes)

C Data Type Compaq Alpha Typical 32-bit Intel IA32

int 4 4 4

int 4 4 4

long int 8 4 4

char 1 1 1

short 2 2 2

float 4 4 4

double 8 8 8

long double 8 8 10/12

char * 8 4 4

char * 8 4 4

»Or any other pointer

Introduction to Information Technology, Diplome FMIPA UGM

Values for Different Word Sizes

W

8 16 32 64

UMax 255 65,535 4,294,967,295 18,446,744,073,709,551,615 TMax 127 32,767 2,147,483,647 9,223,372,036,854,775,807

C Programming

#include <limits.h>

– K&R, App. B11

Declares constants, e.g.,

a 3 , 6 , , 83,6 9, 3,3 ,036,85 , 5,80 TMin -128 -32,768 -2,147,483,648 -9,223,372,036,854,775,808

–ULONG_MAX

–LONG_MAX

–LONG_MIN

(6)

Page 6

Introduction to Information Technology, Diplome FMIPA UGM

Sign Extension Example

short int x = 15213; int ix = (int) x; short int y = -15213; int iy = (int) y;

Decimal Hex Binary

x 15213 3B 6D 00111011 01101101

ix 15213 00 00 C4 92 00000000 00000000 00111011 01101101

y -15213 C4 93 11000100 10010011

iy -15213 FF FF C4 93 11111111 11111111 11000100 10010011

Converting from smaller to larger integer data type

C automatically performs sign extension

Word be ordered in memory

Conventions

Alphas, PC’s are “Little Endian” machines

Least significant byte has lowest address

Sun’s, Mac’s are “Big Endian” machines L t i ifi t b t h hi h t dd

Least significant byte has highest address

Example

Variable xhas 4-byte representation 0x01234567

Address given by &xis 0x100

0x100 0x101 0x102 0x103

Big Endian

address

01 23 45 67 0x100 0x101 0x102 0x103

67 45 23 01

Little Endian

(7)

Page 7

Example: show_bytes in C

int a = 15213;

printf("int a = 15213;\n");

show bytes((pointer) &a sizeof(int)); show_bytes((pointer) &a, sizeof(int));

Result:

int a = 15213;

0x11ffffcb8 0x6d

0x11ffffcb9 0x3b

0x11ffffcba 0x00

0x11ffffcbb 0x00

Example: Representing Integers

int A = 15213; int B = -15213; long int C = 15213;

Decimal: 15213

Binary: 0011 1011 0110 1101

Hex: 3 B 6 D

6D 3B 00 00

Alpha A

3B 6D 00 00

Sun A

00 00 6D 3B 00 00

Alpha C

3B 6D 00 00

Sun C

93 C4 FF FF

Alpha B

C4 93 FF FF

Sun B

00 00 00

(8)

Page 8

Introduction to Information Technology, Diplome FMIPA UGM

Short Int Example

One’s complement: Invert bits for negative numbers

Sign magnitude: Invert sign bit for negative numbers

short ints o t texamplese a p es

ISO C does not define what encoding machines use for signed integers, but 99% (or more) use two’s complement.

15213 Unsigned 00111011 01101101

-15213 Two’s complement 11000100 10010011

-15213 One’s complement 11000100 10010010

-15213 Sign magnitude 10111011 01101101

For truly portable code, don’t count on it.

Example: Representing Floats

Float F = 15213.0;

IEEE Single Precision Floating Point Representation IEEE Single Precision Floating Point Representation

Hex: 4 6 6 D B 4 0 0

Binary: 0100 0110 0110 1101 1011 0100 0000 0000

15213: 1110 1101 1011 01

00 B4 6D 46

Alpha F

B4 00 46 6D

(9)

Page 9

Example: Representing Pointers int B = -15213;

int *P = &B;

Alpha Address

A0 FC FF

Alpha P

Alpha Address

Hex: 1 F F F F F C A 0

Binary: 0001 1111 1111 1111 1111 1111 1100 1010 0000

01 00 00 00 FF EF

Sun P

Sun Address

FB 2C

FF Sun Address

Hex: E F F F F B 2 C

Binary: 1110 1111 1111 1111 1111 1011 0010 1100

Different compilers & machines assign different locations to objects

char S[6] = "15213"; Representing Strings

Strings in C

Represented by array of characters

Each character encoded in ASCII format

Standard 7-bit encoding of character setStandard 7 bit encoding of character set Alpha S Sun S

Other encodings exist, but uncommon

Character “0” has code 0x30

»Digit i has code 0x30+iString should be null-terminated

Final character = 0

Compatibility

B t d i t i

32 31 31 35 33 00 32 31 31 35 33 00

Byte ordering not an issue

Data are single byte quantities

Text files generally platform independent

(10)

Page 10

Representation Instruction Code

Encode Program as Sequence of Instructions

Each simple operation

Arithmetic operationp

Read or write memory

Conditional branch

Instructions encoded as bytes

Alpha’s, Sun’s, Mac’s use 4 byte instructions

»Reduced Instruction Set Computer (RISC)

PC’s use variable length instructions

»Complex Instruction Set Computer (CISC)Complex Instruction Set Computer (CISC)

Different instruction types and encodings for different machines

Most code not binary compatible

Example: Representing Instructions

int sum(int x, int y) {

return x+y; 00 00

Alpha sum

81 3

Sun sum

55 89

PC sum

} 00 30 42 01 80 FA 6B E0 08 C3 90 02 00 09

For this example, Alpha & Sun use two 4-byte instructions

Use differing numbers of instructions in other cases

PC uses 7 instructions with lengths 1, 2, and 3 bytes

E5 8B 89 45 0C 03 45 08

Different machines use totally different instructions and encodingsSame for NT and for Linux

NT / Linux not binary compatible

(11)

Page 11

Boolean Algebra

Developed by George Boole in 19th Century

Algebraic representation of logic

Encode “True” as 1 and “False” as 0

And

A&B = 1 when both A=1 and B=1

& 0 1 0 0 0 1 0 1

Not

Or

A|B = 1 when either A=1 or B=1

| 0 1

0 0 1

1 1 1

Exclusive-Or (Xor)

~ 0 1 1 0

~A = 1 when A=0

^ 0 1 0 0 1 1 1 0

Exclusive-Or (Xor)

A^B = 1 when either A=1 or B=1, but not both

(12)

Page 12

Diagram of a Typical Computer Circuit

1Bit compare for Equality

Adder half

http://lpmpjogja.diknas.go.id/kc/b/boolean/boolean.htm

0 0 1 1 + 0 + 1 + 0 + 1 00 01 01 10

(13)

Page 13

Introduction to Information Technology, Diplome FMIPA UGM

Full Adder Circuit

CI A B Q CO

0 0 0 0 0

0 0 1 1 0

0 1 0 1 0 1bi

t

0 1 1 0 1

1 0 0 1 0

1 0 1 0 1

1 1 0 0 1

1 1 1 1 1

4bi t

1bi t

http://lpmpjogja.diknas.go.id/kc/b/boolean/boolean.htm

Introduction to Information Technology, Diplome FMIPA UGM

Example

A: 0011

(14)

© Christian Jacob

Chapter Overview

Chapter 4

Binary Data Representation

and

Binary Arithmetic

4.1 Binary Data Representation

4.2 Important Number Systems for Computers

4.2.1 Number System Basics

4.2.2 Useful Number Systems for Computers 4.2.3 Decimal Number System

4.2.4 Binary Number System 4.2.5 Octal Number System

4.2.6 Hexadecimal Number System 4.2.7 Comparison of Number Systems

(15)

© Christian Jacob

Chapter Overview 4.4 Conversions Between Number Systems

4.4.1 Conversion of Natural Numbers 4.4.2 Conversion of Rational Numbers

4.5 Binary Logic

4.6 Binary Arithmetic

4.7 Negative Numbers and Complements

4.7.1 Problems of Signed Number Representation 4.7.2 1-Complement ((B-1)-Complement)

4.7.3 2-Complement (B-Complement)

4.8 Floating Point Numbers

4.8.1 Mantissa and Exponent 4.8.2 Floating Point Arithmetics 4.8.3 Limited Precision

4.9 Representation of Strings

(16)

Page 3 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Prev Next Last

4.1

Binary Data Representation

Bit: smallest unit of information

yes / no, on / off, L / 0, 1 / 0, 5V / 0V

Byte: group of 8 bits

--> 28 = 256 different states

Word: the number of bits (word length) which

can be processed by a computer in a single step (e.g., 32 or 64)

--> machine dependent Representation:

n-1

2n-1

3

8

2

4

1

2

0

(17)

Page 4 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Prev Next Last

• The word size in any given computer is fixed.

Example: 16-bit word

⇒ every word (memory location) can hold a 16-bit pattern, with each bit either 0 or 1.

How many distinct patterns are there in a 16-bit word?

• Each bit has 2 possible values: 0 or 1

⇒ 1 bit has 2 distinct patterns: 0, 1

• With 2 bits, each position has 2 possible values: 00, 01, 10, 11

(18)

Page 5 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Prev Next Last

• With 3 bits, again each position can be either 0 or 1: 000 100

001 101 010 110 011 111

⇒ 23 = 8 distinct bit patterns

• In general, for n bits (a word of length n) we have 2n distinct bit patterns.

(19)

Page 6 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

4.2

Important Number Systems for Computers

4.2.1 Number System Basics

• Number systems, as we use them, consist of - a basic set of digits (or letters); example: - a base (how many digits); example: • A number is a linear sequence of digits.

• The value of a digit at a specific position depends on its “assigned

meaning” and on its position.

• The value of a number is the sum of these values.

Number: with word length

Value:

Z Z = {0 1 2, , , ,… 9}

B = Z B = Z = 10

N

NB = dn 1dn 2d1d0 n

NB diBi

i = 0

n – 1

dn 1Bn – 1 + dn 2Bn – 2 + … + d1B1 + d0B0
(20)

Page 7 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

4.2.2 Useful Number Systems for Computers

Name Base Digits

dual binary

2 0, 1

octal 8 0, 1, 2, 3, 4, 5, 6, 7

decimal 10 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

hexadecimal sedecimal

(21)

Page 8 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

4.2.3 Decimal Number System

;

• Each position to the left of a digit increases by a power of 10. • Each position to the right of a digit decreases by a power of 10.

Example:

4769210 = 2 · 100 +

9 · 101 + 6 · 102 + 7 · 103 + 4 · 104

= 2 + 90 + 600 + 7000 + 40000

(22)

Page 9 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

4.2.4 Binary Number System

;

• Each position to the left of a digit increases by a power of 2. • Each position to the right of a digit decreases by a power of 2.

Example:

101110012 = 1 · 20 + 0 · 21 + 0 · 22 + 1 · 23 + 1 · 24 + 1 · 25 + 0 · 26 +

1 · 27 = 1 + 8 + 16 + 32 + 128 = 18510

(23)

Page 10 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

Counting in Binary

Decimal Dual Decimal Dual

0 00 000 16 10 000

1 00 001 17 10 001

2 00 010 18 10 010

3 00 011 19 10 011

4 00 100 20 10 100

5 00 101 21 10 101

6 00 110 22 10 110

7 00 111 23 10 111

8 01 000 24 11 000

9 01 001 25 11 001

10 01 010 26 11 010

11 01 011 27 11 011

12 01 100 28 11 100

13 01 101 29 11 101

14 01 110 30 11 110

(24)

Page 11 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

4.2.5 Octal Number System

;

• Each position to the left of a digit increases by a power of 8. • Each position to the right of a digit decreases by a power of 8.

Example:

124038 = 3 · 80 + 0 · 81 + 4 · 82 + 2 · 83 + 1 · 84

= 3 · 1 + 0 · 8 + 4 · 64 + 2 · 512 + 1 · 4096 = 537910

(25)

Page 12 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

Counting in Octal

Decimal Octal Decimal Octal

0 0 0 16 2 0

1 0 1 17 2 1

2 0 2 18 2 2

3 0 3 19 2 3

4 0 4 20 2 4

5 0 5 21 2 5

6 0 6 22 2 6

7 0 7 23 2 7

8 1 0 24 3 0

9 1 1 25 3 1

10 1 2 26 3 2

11 1 3 27 3 3

12 1 4 28 3 4

13 1 5 29 3 5

14 1 6 30 3 6

(26)

Page 13 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

4.2.6 Hexadecimal Number System

;

Each position to the left of a digit increases by a power of 16.

Each position to the right of a digit decreases by a power of 16.

Example:

FB40A16 = 10 · 160 + 0 · 161 + 4 · 162 + 11 · 163 + 15 · 164

= 10 · 1 + 0 · 16 + 4 · 256 + 11 · 4096 + 15 · 65536 = 1,029,13010

(27)

Page 14 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

Counting in Hexadecimal

Decimal Hexadecimal Decimal Hexadecimal

0 0 0 16 1 0

1 0 1 17 1 1

2 0 2 18 1 2

3 0 3 19 1 3

4 0 4 20 1 4

5 0 5 21 1 5

6 0 6 22 1 6

7 0 7 23 1 7

8 0 8 24 1 8

9 0 9 25 1 9

10 0 A 26 1 A

11 0 B 27 1 B

12 0 C 28 1 C

13 0 D 29 1 D

14 0 E 30 1 E

(28)

Page 15 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Important Number Systems for Computers Prev Next Last

4.2.7 Comparison of Number Systems

Decimal Dual Octal Hexadecimal Decimal Dual Octal Hexadecimal

0 00 000 0 0 0 0 16 10 000 2 0 1 0

1 00 001 0 1 0 1 17 10 001 2 1 1 1

2 00 010 0 2 0 2 18 10 010 2 2 1 2

3 00 011 0 3 0 3 19 10 011 2 3 1 3

4 00 100 0 4 0 4 20 10 100 2 4 1 4

5 00 101 0 5 0 5 21 10 101 2 5 1 5

6 00 110 0 6 0 6 22 10 110 2 6 1 6

7 00 111 0 7 0 7 23 10 111 2 7 1 7

8 01 000 1 0 0 8 24 11 000 3 0 1 8

9 01 001 1 1 0 9 25 11 001 3 1 1 9

10 01 010 1 2 0 A 26 11 010 3 2 1 A

11 01 011 1 3 0 B 27 11 011 3 3 1 B

12 01 100 1 4 0 C 28 11 100 3 4 1 C

13 01 101 1 5 0 D 29 11 101 3 5 1 D

14 01 110 1 6 0 E 30 11 110 3 6 1 E

(29)

Page 16 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Powers of 2 Prev Next Last

4.3

Powers of 2

N 2N N 2N

0 1 17 131,072

1 2 18 262,144

2 4 19 524,288

3 8 20 1,048,576

4 16 21 2,097,152

5 32 22 4,194,304

6 64 23 8,388,608

7 128 24 16,777,216

8 256 25 33,554,432

9 512 26 67,108,864

10 1,024 27 134,217,728

11 2,048 28 268,435,456

12 4,096 29 536,870,912

13 8,192 30 1,073,741,824

14 16,384 31 2,147,483,648

15 32,768 32 4,294,967,296

(30)

Page 17 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Conversions Between Number Systems Prev Next Last

4.4

Conversions Between Number Systems

4.4.1 Conversion of Natural Numbers

Base 10 ⇒ Base B Conversion

We use the metod of iterated division to convert a number of base 10 into a number of base .

1. Divide the number by : whole number & remainder . - Take as the next number to be divided by .

- Keep as the next left-most digit of the new number .

2. If is zero then STOP, else set and go to step 1.

N10

NB B

N10 B N R

N B

R NB

(31)

Page 18 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Conversions Between Number Systems Prev Next Last

Example: 102010 = ? 8

Number to be converted: ; target base

Step 1: 1020 : 8 = 127 Remainder: 4 127 · 8 = 1016

Step 2: 127 : 8 = 15 Remainder: 7 15 · 8 = 120

Step 3: 15 : 8 = 1 Remainder: 7 1 · 8 = 8

Step 4: 1 : 8 = 0 Remainder: 1

⇒ 102010 = 17748

(32)

Page 19 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Conversions Between Number Systems Prev Next Last

Base B ⇒ Base 10 Conversion

We use the metod of iterated multiplication to convert a number of base into a number of base 10.

We simply add the “contribution” of each digit.

Example: 1F216 = ?10

Number to be converted: ; target base

1F216 = 2 · 160 + 15 · 161 + 1 · 162

= 2 + 240 + 256

⇒ 1F216 = 49810

NB

B N10

(33)

Page 20 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Conversions Between Number Systems Prev Next Last

Conversions between Numbers 2n and 2m

Conversion 2n 21

n = 3: octal ⇒ dual:

Replace 1 octal digit by 3 binary digits.

Example: 3 5 78 = 011 101 1112

n = 4: hexadecimal ⇒ dual

Replace 1 hexadecimal digit by 4 binary digits.

(34)

Page 21 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Conversions Between Number Systems Prev Next Last

Conversion 21 2n

n = 3: dual ⇒ octal:

Replace 3 binary digits by 1 octal digit.

Example: 1011110102 = 101 111 0102

= 5 7 28

n = 4: hexadecimal ⇒ dual

Replace 4 binary digits by 1 hexadecimal digit.

Example: 110001111100102 = 11 0001 1111 00102

(35)

Page 22 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Conversions Between Number Systems Prev Next Last

Conversion 2n 2m

2n 21 2m

Example: octal ⇒ hexadecimal

263518 = 2 6 3 5 18

octal to binary: = 010 110 011 101 0012

rearrange binary: = 0010 1100 1110 10012

(36)

Page 23 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Conversions Between Number Systems Prev Next Last

4.4.2 Conversion of Rational Numbers

Note: An exact conversion of rational numbers ⇒ or ⇒ is not always possible.

• We want: , where is a “sufficiently” small number.

Base B ⇒ Base 10 Conversion

Example: 0.110012 = ?10

0.11001 = 1 · 2-1 + 1 · 2-2 + 0 · 2-3 + 0 · 2-4 + 1 · 2-5

= 1 · 0.5 + 1 · 0.25 + 0 · 0.125 + 0 · 0.0625 + 1 · 0.03125

= 0.5 + 0.25 + 0.03125 = 0.7812510

R10 RB RB

R10

(37)

Page 24 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Conversions Between Number Systems Prev Next Last

Base 10 Base B Conversion

Example: 0.1910 = ?2 with k = 9 bit precision

⇒ 0.1910 = 0.0011000012 + ε

Step

Operation

1

0.19

0.19 · 2 = 0.38

0.38

0

2

0.38

0.38 · 2 = 0.76

0.76

0

3

0.76

0.76 · 2 = 1.52

0.52

1

4

0.52

0.52 · 2 = 1.04

0.04

1

5

0.04

0.04 · 2 = 0.08

0.08

0

6

0.08

0.08 · 2 = 0.16

0.16

0

7

0.16

0.16 · 2 = 0.32

0.32

0

8

0.32

0.32 · 2 = 0.64

0.64

0

9

0.64

0.64 · 2 = 1.28

0.28

1

i N R z( )i

(38)

Page 25 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Binary Logic Prev Next Last

4.5

Binary Logic

Logical AND ( )

Logical OR ( )

AND 0 1

0 0 0

1 0 1

OR 0 1

0 0 1

1 1 1

xy

(39)

Page 26 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Binary Logic Prev Next Last

Logical NOT ( , negation)

Logical XOR (exclusive OR)

Logical NAND (negated AND)

x

0 1

1 0

XOR 0 1

0 0 1

1 1 0

NAND 0 1

0 1 1

1 1 0

x

¬

x

(40)

Page 27 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Binary Logic Prev Next Last

Examples:

11001010 01000111 11110000

AND 00110101 01110010 10101010 00000000 01000010 10100000

11001010 01000111 11110000

NAND 00110101 01110010 10101010 11111111 10111101 01011111

11001010 01000111 11110000 OR 00110101 01110010 10101010

11111111 01110111 11111010

11001010 01000111 11110000 XOR 00110101 01110010 10101010

(41)

Page 28 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Binary Arithmetic Prev Next Last

4.6

Binary Arithmetic

Elementary Rules for addition, subtraction, and multiplication

Operation Result Carry

Addition

0 + 0 0 + 1 1 + 0 1 + 1

0 1 1 0 0 0 0 1 Subtraction

0 - 0 0 - 1 1 - 0 1 - 1

0 1 1 0 0 1 0 0 Multiplication

0 · 0 0 · 1 1 · 0 1 · 1

(42)

Page 29 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Binary Arithmetic Prev Next Last

Examples:

Addition: Subtraction:

1 0 1 0 1 1 0 1

+ 1 0 1 1 - 1 0 1 0

––––––––––––––––- ––––––––––––––––-carry: 1 0 1 1 carry: 1 0 1 0

+ 1 0 1 1 1 -1 1 1 0

––––––––––––––––-

––––––––––––––––-1 0 ––––––––––––––––-1 0 ––––––––––––––––-1 0 0 1 1

1010 1310

+ 1110 - 1010

––––––––––––––––-

(43)

Page 30 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Binary Arithmetic Prev Next Last

Multiplication:

1 1 1 · 1 0 1 ––––––––––––––––––––––––

1 1 1 0 0 0

+ 1 1 1

––––––––––––––––––––––––

carry: 1

+ 1

carry: 1

+ 1

carry: 1

+ 1

(44)

Page 31 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Negative Numbers and Complements Prev Next Last

4.7

Negative Numbers and Complements

Integer Numbers: A possible representation

Number = sign & value

• sign = 0 ⇒ +, positive number • sign = 1 ⇒ -, negative number

Range of integer numbers for n bits: - 2n-1+1 … 2n-1-1

15 14 1 0

(45)

Page 32 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Negative Numbers and Complements Prev Next Last

Example (1): n = 3

Range: - 23-1+1 … 23-1-1 = - 22+1 … 22-1

= - 4 + 1 … 4 -1 = -3 ... +3

Sign Value Number

0 0 0 0

0 0 1 1

0 1 0 2

0 1 1 3

1 0 0 ?

1 0 1 - 1

1 1 0 - 2

1 1 1 - 3

(46)

Page 33 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Negative Numbers and Complements Prev Next Last

4.7.1 Problems of Signed Number Representation

• Given 2 binary numbers: one positive, one negative

0 0 1 1 0 0 (base 2) 12 (base 10)

+ 1 0 1 1 1 1 -15

––––––––––––––– –––––– 1 1 1 0 1 1 (= -2710) -3

• “1-1”: 1 - 1 = 1 + (-1) = 0 ?

0 0 0 1 0 0 1

+ 1 0 0 1 - 0 0 1

–––––––––––– –––––––––

1 0 1 0 (= -210) 0 0 0

Clearly this won´t work!

(47)

Page 34 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Negative Numbers and Complements Prev Next Last

4.7.2 1-Complement ((

B-1

)-Complement)

We represent negative numbers by negating the positive

representation of the number (and vice versa): • any 1 is changed to a 0

• any 0 is changed to a 1

Example:

Binary Decimal One´s Complement Decimal

0 1001 9 1 0110 - 9

1 1001 -6 0 0110 + 6

0 0000 0 1 1111 -15

0 1111 15 1 0000 ?

(48)

Page 35 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Negative Numbers and Complements Prev Next Last

4.7.3 2-Complement (

B

-Complement)

• Positive numbers are represented as usual. • Negative numbers are created by

- negating the positive value and

- adding one (this avoids the negative zero).

Examples:

Binary Decimal Two´s Complement Decimal

0 1001 9 1 0110 + 1 = 1 0111 -9

0 1101 3 1 0010 + 1 = 1 0011 -3

0 0000 0 1 1111 + 1 = 0 0000 0

0 1111 15 1 0000 + 1 = 1 0001 -15

1 1111 -1 ¬(1 1111 - 1) =

¬(1 1110) = 0 0001

1

(49)

Page 36 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Negative Numbers and Complements Prev Next Last

Number ring for 5-digit 2-complement

00000

00001 00010

00011

00100

00101

00110

00111

11000

10111

10110

10101

10100

10011

10010 10001

11111

11110

11101

11100

11011

11010

11001

10000

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 -16 positive numbers negative numbers 0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11-12 -13-14-15 31 30 29 28 27 26 25 24 23 22 2120

19 18 17

(50)

Page 37 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Negative Numbers and Complements Prev Next Last

With the 2-complement, subtractions can be performed as simple additions:

Example: 5 digit precision, base 10

Example 1 Example 2

B = 10 1410 - 710 910 - 1310

Complement 7: 00111

(-7)B-1: 11000 + 1 ––––––– (-7)B: 11001

13: 01101 (-13)B-1: 10010 + 1 ––––––– (-13)B: 10011

Addition 14: 01110

+(-7)B: + 11001 ––––––––– 7: 1 00111

(51)

Page 38 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Floating Point Numbers Prev Next Last

4.8

Floating Point Numbers

4.8.1 Mantissa and Exponent

Recall the general form of numbers expressed in scientific notation: • 3.141592653589793238462643383279502884197

• 6.02 x 1023

Printed out by a computer these numbers usually look like this: • 3.1415e0

• 6.02e23

This representation saves space and reduces redundancy.

Hence, the usual format for a 32-bit real (floating point) number is:

(52)

Page 39 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Floating Point Numbers Prev Next Last

4.8.2 Floating Point Arithmetics

Example: 0.740 · 105 + 0.843 · 103

Addition:

• 1. Identify mantissae and exponents • 2. Compare exponents

• 3. Adjust exponents if necessary • 4. Adjust the shorter mantissa • 5. Add mantissae

• 6. Normalize mantissa • 7. Adjust exponent

Operands Compare Exponents Adjust Exponents and Mantissae

0.740 · 105

0.843 · 103 e1 - e2 = 2

0.740 · 105 + 0.008 · 105

(53)

Page 40 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Floating Point Numbers Prev Next Last

Example: Multiplication • 1. Multiply of mantissae • 2. Normalize mantissae • 3. Adjust exponents • 4. Add exponents

Example: (0.792 · 105) · (0.116 · 10-3)

Step 1: multiplication of the mantissae: 0.792 · 0.116 =

0.792 · 10-1

+ 0.792 · 10-2

(54)

Page 41 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Floating Point Numbers Prev Next Last

Step 1 (cont.): step-by-step multiplication of the mantissae 0.792 · 10-1 0.792 · 10-1

0.871 · 10-1 + 0.792 · 10-2 0.079 · 10-1

0.918 · 10-1

+ 0.4752 · 10-2 0.047 · 10-1

Step 2:

5 + (-3) + (-1) = 1

Result:

0.918 · 101 (with 3 digits of precision in the mantissa)

Step 1 (cont.): step-by-step multiplication of the mantissae 0.792 · 10-1 0.792 · 10-1

0.871 · 10-1 + 0.792 · 10-2 0.079 · 10-1

0.918 · 10-1

+ 0.4752 · 10-2 0.047 · 10-1

Step 2: Add exponents 5 + (-3) + (-1) = 1

Result:

(55)

Page 42 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Floating Point Numbers Prev Next Last

4.8.3 Limited Precision

Note: Not all values can be represented!

Example:

- mantissa: 2 decimal digits - exponent: 1 decimal digit

• Sample number: 74 · 102 = 7400

What is the next higher value?

75 · 102 = 7500 What about values 7400 < x < 7500?

They cannot be represented!!!

(56)

Page 43 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Representation of Strings Prev Next Last

4.9

Representation of Strings

4.9.1 Representation of Characters

Usually: single characters are represented by 1 byte

different standards: ASCII1, EBCDIC2

Currently: internationalization with Unicode

a single character is represented by 2 bytes

1. ASCII: American Standard Code for Information Interchange

(57)

Page 44 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Representation of Strings Prev Next Last

ASCII Character Encoding

Compare the Unicode character encodings …

D C D C D C D C D C D C D C D C

0 NUL 16 DLE 32 SP 48 0 64 @ 80 P 96 ‘ 112 p

1 SCH 17 DC1 33 ! 49 1 65 A 81 Q 97 a 113 q

2 STX 18 DC2 34 50 2 66 B 82 R 98 b 114 r

3 ETX 19 DC3 35 # 51 3 67 C 83 S 99 c 115 s

4 EOT 20 DC4 36 $ 52 4 68 D 84 T 100 d 116 t

5 ENQ 21 NAK 37 % 53 5 69 E 85 U 101 e 117 u

6 ACK 22 SYN 38 & 54 6 70 F 86 V 102 f 118 v

7 BEL 23 ETB 39 ´ 55 7 71 G 87 W 103 g 119 w

8 BS 24 CAN 40 ( 56 8 72 H 88 X 104 h 120 x

9 HT 25 EM 41 ) 57 9 73 I 89 Y 105 i 121 y

10 LF 26 SUB 42 * 58 : 74 J 90 Z 106 j 122 z

11 VT 27 ESC 43 + 59 ; 75 K 91 [ 107 k 123 {

12 FF 28 FS 44 , 60 < 76 L 92 \ 108 l 124 |

13 CR 29 GS 45 - 61 = 77 M 93 ] 109 m 125 }

14 S0 30 RS 46 . 62 > 78 N 94 ^ 110 n 126 ~

(58)

Page 45 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Representation of Strings Prev Next Last

4.10 Representation of Strings

Strings are represented by sequences of characters (⇒ usually: byte sequence)

1. Fixed length strings (example: length = 7)

2. Variable length strings

3. Encoding with string length at the beginning

1 P 2 e 3 t 4 e 5 r 6 SP 7 SP 1 C 2 o 3 m 4 p 5 u 6 t 7 e r 1 P 2 e 3 t 4 e 5 r 6 NUL

7 n-1 n

2 P 3 e 4 t 5 e 6 r 7

8 n-1 n

1

(59)

Page 46 Chapter 4: Binary Data Representation and Arithmetic © Christian Jacob

First Back TOC Representation of Strings Prev Next Last

With ASCII charcter encoding string comparisons are possible:

´AA´ < ´AD´ because: 101 1018 < 101 1048

´AA´ < ´Aa´ 101 1018 < 101 1418

´A1´ < ´AA´ 101 0618 < 101 1018

Hence, sorting of strings becomes easy:

Referensi

Dokumen terkait

Terbilang : ( satu milyar tiga ratus tujuh puluh tiga juta tiga ratus tujuh puluh tiga ribu rupiah).. Demikian untuk diketahui dan atas perhatiannya diucapkan

[r]

Bidang dan Kegiatan Usaha Bergerak dalam bidang usaha Perbankan dan Jasa Keuangan Jumlah Saham yang ditawarkan 2.051.366.765 Saham Biasa Kelas B baru dengan nilai nominal.

J., sebagai Co- Author, guru yang telah banyak memberikan bimbingan, pengarahan, pengetahuan, dorongan, dukungan dan buku- buku bacaan yang berharga selama penulis mengikuti

Candi Baru Sidoarjo dengan menggunakan metode Work Load Analysis ( WLA ) dapat di simpulkan bahwa beban kerja karyawan pada bagian proses Persiapan 99.56 % dengan jumlah

Tahapan penting metodologi ini yaitu: (1) memilih sejumlah mesh dari peta luas lahan baku sawah, dengan memperhatikan kontur geografis sawah atau ketinggian rata-rata

Berdasarkan hasil penelitian yang telah dilakukan prestasi belajar siswa diperoleh nilai rata-rata kelas pada siklus I sebesar 67,41 dengan persentase ketuntasan belajar 70,96%

Penulisan skripsi ini telah membuahkan suatu aplikasi sistem informasi eksekutif pemasaran, yang diharapkan dapat membantu eksekutif di dalam memonitor kondisi internal dan