Presentation is loading. Please wait.

Presentation is loading. Please wait.

Data Encoding COSC 1301.

Similar presentations


Presentation on theme: "Data Encoding COSC 1301."— Presentation transcript:

1 Data Encoding COSC 1301

2 Computers and Data Computers store information as sequences of bits
Computers store many types of data: numbers text audio images video

3 Standards Look around – how many items do you see that are based on a standard? Standards: make our lives simpler, more efficient Sometimes there aren't any.

4 Not Much of a Standard But getting better

5 A Small Number of Standards
Imperial vs. metric

6 A Small Number of Standards
Candelabra vs Edisonhttp://

7 A Small Number of Standards
Candelabra vs Edison, , even when new things are introduced, they must conform.

8 Bitten by Lack of a Single Standard

9 Bitten by Lack of a Single Standard
Region codes intended to make it hard for things to be universal

10 Wishing for Standards http://www.sheldonbrown.com/tire-sizing.html
Go to this article to see how complicated the tire size situation is. Image:

11 A General Trend Toward Standards
Word Sizes of Early Computers EDVAC 44 bits 1947 MARK 1 40 bits 1948 EDSAC 17 bits 1949 CSIRAC 20 bits UNIVAC I 12 digits 1951 IBM 701 36 bits 1952 CDC 1604 48 bits 1959 CDC 6600 60 bits 1964 IBM 360 32 bits 1965 x-86 16 bits 1978 x-32 1986 x-64 64 bits 2004 EDSAC had 18 bits but the first one wasn’t usable CSIRAC – Australian Word Size – natural unit of data for a particular processor Word = fixed size group of bits that are handled as a unit by the hardware of the processor Word size = number of bits in a word Typically registers are word sized. The largest piece of data that can be transferred to and from memory in a single operation is a word. The largest address size (denoting a location in memory) is a word. Modern processors: 8, 16, 32 or 64 bits. Minimum amount of storage given for any type of data is allocated in multiples of that word size.

12 Standard: Integer Representation
Representing integers in base 2: 93 1 Obvious how to represent integers

13 Integers 1 1 But what about: -93 sign bit
Representing integers in base 2: 93 1 But what about: -93 1 Obvious how to represent integers sign bit

14 Integers 1 But what about: -93 sign bit
sign bit Problem: Two representations of zero – positive zero and negative zero Unnecessary complexity Better representations make it easier for the computer. Obvious how to represent integers

15 Two's Complement: Negative Integers
Flip the bits: Then add 1: 1 1 Now addition and subtraction work. You must tell me how many bits to use, and add leading 0s as needed. 1 A good explanation of why it works:

16 A Problem 104.23 10423 What should we do about:
If we always want two places after . : Then we could write: 10423 Sort of like counting cents instead of dollars. But we want a more general solution. And then always treat it as though the decimal point were there.

17 Floating Point Numbers
Floating point representation: exponential/scientific notation Example: 123l.45 can be represented as a decimal floating-point number with the integer as the significand and -2 as the exponent (and 10 as the base). It’s value is given by the following: = X 10 -2 See the following slide to see how a computer stores this

18 IEEE Standard - Floating Point
Single Format: 32 bits (4 bytes) to store a floating point number: 1 bit for the sign 8 bits for the exponent 23 bits for the mantissa or significand Double Format: 64 bits (8 bytes) to store a floating point number: 11 bits for the exponent 52 bits for the mantissa or significand

19 Text To represent text digitally, need to be able to represent every possible character that may appear: Computers have revolutionized our world. コンピュータは私たちの世界に革命をもたらしました。 Les ordinateurs ont révolutionné notre monde. English Japanese French

20 Text Decide how many characters we need to represent.
Then: determine the required number of bits. English: 26 letters, 52 for upper and lower case. Plus punctuation... And other languages? character set: a list of characters and the codes used to represent each Several character sets have been used over the years - a standard makes processing text easier

21 ASCII ASCII: American Standard Code for Information Interchange
1963: 7 bits per character = 128 different symbols Thought to be enough at the time 8th bit in each character byte – used as a check bit or parity bit check for errors in transmission of data Later: Latin-1 Extended ASCII character set All 8 bits used to represent character Represent 256 characters – includes accented characters, other special characters

22 ASCII http://www.krisl.net/cgi-bin/ascbin.pl
Note that most of the control codes are obsolete now.

23 Representing Text Fourscore and seven … F o u r

24 Representing Text T h e n u m b e r i s 1 7 .
E D E In hex

25 Computing with Text Suppose we want to capitalize this entire paragraph: Computers have revolutionized our world. They have changed the course of our daily lives, the way we do science, the way we entertain ourselves, the way that business is conducted, and the way we protect our security. Let’s go back and look at the ASCII table to see how to do that. Add Octal 40 to all the letters (but not the punctuation). Do it in Python with st.upper()

26 When We Need More Characters
What about things like: 简体字 Chinese string means “simple writing”. ASCII not enough for international use.

27 When We Need More Characters
What about things like: 简体字 Answer: Unicode Chinese string means “simple writing” A conversion applet:

28 Unicode Previously, a letter maps to some bits:
A encoded as In Unicode, a letter maps to a code point – a number like U+0639 U+ means Unicode numbers are hexadecimal Every character has a Unicode code point This doesn't indicate how the code point is encoded as a sequence of bits, though U+0041: English letter A U+0639: Arabic letter Ain

29 Unicode Example: Hello
5 code points, one code point (i.e., number) per letter U+0048 U+0065 U+006C U+006F How is this stored in memory? Different standards for this. One standard: UTF-8 Standard system for storing strings of Unicode code points in binary (i.e., U+DDDD stored in some number of bytes)

30 UTF-8 Code points stored in one byte So English text looks same in UTF-8 as ASCII (backwards compatible) Code points 128 and higher: 2, 3, up to 6 bytes Hello: U+0048 U+0065 U+006C U+006C U+006F Stored as: C 6C 6F (same as ASCII) For Hebrew characters, accented letters, etc.: you may need more bytes


Download ppt "Data Encoding COSC 1301."

Similar presentations


Ads by Google