Binary Representation



Similar documents
Binary Representation. Number Systems. Base 10, Base 2, Base 16. Positional Notation. Conversion of Any Base to Decimal.

Lecture 11: Number Systems

Computer Science 281 Binary and Hexadecimal Review

LSN 2 Number Systems. ECT 224 Digital Computer Fundamentals. Department of Engineering Technology

Oct: 50 8 = 6 (r = 2) 6 8 = 0 (r = 6) Writing the remainders in reverse order we get: (50) 10 = (62) 8

EE 261 Introduction to Logic Circuits. Module #2 Number Systems

Useful Number Systems

CDA 3200 Digital Systems. Instructor: Dr. Janusz Zalewski Developed by: Dr. Dahai Guo Spring 2012

Levent EREN A-306 Office Phone: INTRODUCTION TO DIGITAL LOGIC

Goals. Unary Numbers. Decimal Numbers. 3,148 is s 100 s 10 s 1 s. Number Bases 1/12/2009. COMP370 Intro to Computer Architecture 1

Chapter 2. Binary Values and Number Systems

NUMBER SYSTEMS. 1.1 Introduction

Lecture 2. Binary and Hexadecimal Numbers

CPEN Digital Logic Design Binary Systems

The string of digits in the binary number system represents the quantity

CS101 Lecture 11: Number Systems and Binary Numbers. Aaron Stevens 14 February 2011

Base Conversion written by Cathy Saxton

2011, The McGraw-Hill Companies, Inc. Chapter 3

Binary, Hexadecimal, Octal, and BCD Numbers

Digital System Design Prof. D Roychoudhry Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Systems I: Computer Organization and Architecture

=

Chapter 1: Digital Systems and Binary Numbers

Section 1.4 Place Value Systems of Numeration in Other Bases

Chapter 4: Computer Codes

Number Conversions Dr. Sarita Agarwal (Acharya Narendra Dev College,University of Delhi)

3. Convert a number from one number system to another

Number Representation

CSI 333 Lecture 1 Number Systems

Binary Numbers. Binary Octal Hexadecimal

Number Systems. Introduction / Number Systems

Chapter 7 Lab - Decimal, Binary, Octal, Hexadecimal Numbering Systems

Positional Numbering System

CS201: Architecture and Assembly Language

Memory is implemented as an array of electronic switches

Numeral Systems. The number twenty-five can be represented in many ways: Decimal system (base 10): 25 Roman numerals:

2 Number Systems. Source: Foundations of Computer Science Cengage Learning. Objectives After studying this chapter, the student should be able to:

plc numbers Encoded values; BCD and ASCII Error detection; parity, gray code and checksums

1. Give the 16 bit signed (twos complement) representation of the following decimal numbers, and convert to hexadecimal:

Decimal to Binary Conversion

Solution for Homework 2

Unsigned Conversions from Decimal or to Decimal and other Number Systems

To convert an arbitrary power of 2 into its English equivalent, remember the rules of exponential arithmetic:

Today s topics. Digital Computers. More on binary. Binary Digits (Bits)

Technical Support Bulletin Nr.18 Modbus Tips

Digital Design. Assoc. Prof. Dr. Berna Örs Yalçın

Lecture 8: Binary Multiplication & Division

Number and codes in digital systems

Divide: Paper & Pencil. Computer Architecture ALU Design : Division and Floating Point. Divide algorithm. DIVIDE HARDWARE Version 1

Chapter 5. Binary, octal and hexadecimal numbers

Cyber Security Workshop Encryption Reference Manual

A Step towards an Easy Interconversion of Various Number Systems

Binary Adders: Half Adders and Full Adders

Digital codes. Resources and methods for learning about these subjects (list a few here, in preparation for your research):

Counting in base 10, 2 and 16

Chapter 7D The Java Virtual Machine

Data Storage. Chapter 3. Objectives. 3-1 Data Types. Data Inside the Computer. After studying this chapter, students should be able to:

DNA Data and Program Representation. Alexandre David

Data Storage 3.1. Foundations of Computer Science Cengage Learning

Sample EHG CL and EHG SL10 16-bit Modbus RTU Packet

COMP 250 Fall 2012 lecture 2 binary representations Sept. 11, 2012

NUMBER SYSTEMS. William Stallings

Grade 6 Math Circles. Binary and Beyond

Pemrograman Dasar. Basic Elements Of Java

Numbering Systems. InThisAppendix...

Table 1 below is a complete list of MPTH commands with descriptions. Table 1 : MPTH Commands. Command Name Code Setting Value Description

Number Systems and Radix Conversion

UNDERSTANDING SMS: Practitioner s Basics

2010/9/19. Binary number system. Binary numbers. Outline. Binary to decimal

Today. Binary addition Representing negative numbers. Andrew H. Fagg: Embedded Real- Time Systems: Binary Arithmetic

Binary Number System. 16. Binary Numbers. Base 10 digits: Base 2 digits: 0 1

THE BINARY NUMBER SYSTEM

Chapter 1. Binary, octal and hexadecimal numbers

ELEG3924 Microprocessor Ch.7 Programming In C

Nemo 96HD/HD+ MODBUS

Everything you wanted to know about using Hexadecimal and Octal Numbers in Visual Basic 6

We can express this in decimal notation (in contrast to the underline notation we have been using) as follows: b + 90c = c + 10b

Interface Protocol v1.2

USB Card Reader Configuration Utility. User Manual. Draft!

Data Representation. What is a number? Decimal Representation. Interpreting bits to give them meaning. Part 1: Numbers. six seis

Caml Virtual Machine File & data formats Document version: 1.4

BCD (ASCII) Arithmetic. Where and Why is BCD used? Packed BCD, ASCII, Unpacked BCD. BCD Adjustment Instructions AAA. Example

Japanese Character Printers EPL2 Programming Manual Addendum

The Hexadecimal Number System and Memory Addressing

The Answer to the 14 Most Frequently Asked Modbus Questions

20 Using Scripts. (Programming without Parts) 20-1

Digital Logic Design. Introduction

Binary Division. Decimal Division. Hardware for Binary Division. Simple 16-bit Divider Circuit

The use of binary codes to represent characters

Lecture 4: Binary. CS442: Great Insights in Computer Science Michael L. Littman, Spring I-Before-E, Continued

COMPSCI 210. Binary Fractions. Agenda & Reading

Recall the process used for adding decimal numbers. 1. Place the numbers to be added in vertical format, aligning the decimal points.

NUMBER SYSTEMS APPENDIX D. You will learn about the following in this appendix:

Paramedic Program Pre-Admission Mathematics Test Study Guide

HOMEWORK # 2 SOLUTIO

PROBLEMS (Cap. 4 - Istruzioni macchina)

JobTestPrep's Numeracy Review Decimals & Percentages

Lecture N -1- PHYS Microcontrollers

Verilog - Representation of Number Literals

Streaming Lossless Data Compression Algorithm (SLDC)

Transcription:

Binary Representation The basis of all digital data is binary representation. Binary - means two 1, 0 True, False Hot, Cold On, Off We must tbe able to handle more than just values for real world problems 10 1, 0, 56 True, False, Maybe Hot, Cold, LukeWarm, Cool On, Off, Leaky V 0.4 2

Number Systems To talk about binary data, we must first talk about number systems The decimal number system (base 10) you should be familiar with! A digit in base 10 ranges from 0 to 9. A digit in base 2 ranges from 0 to 1 (binary number system). A digit in base 2 is also called a bit. A digit in base R can range from 0 to R-1 A digit i in Base 16 can range from 0 to 16-1 (0,1,2,3,4,5,5,6,7,8,9,A,B,C,D,E,F). Use letters A-F to represent values 10 to 15. Base 16 is also called Hexadecimal or just Hex. V 0.4 3

Positional Notation Value of number is determined by multiplying each digit by a weight and then summing. The weight of each digit is a POWER of the BASE and is determined by position. 953.78 = 9 * 10 2 + 5 * 10 1 + 3 * 10 0 + 7 * 10-1 + 8 * 10-2 = 900 + 50 + 3 +.7 +.08 = 953.78 0b1011.1111 = 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 + 1*2-1 + 1*2-2 = 8 + 0 + 2 + 1 + 0.5 + 0.25 = 11.75 0xA2F = 10*16 2 + 2*16 1 + 15*16 0 = 10 * 256 + 2 * 16 + 15 * 1 = 2560 + 32 + 15 = 2607 V 0.4 4

Base 10, Base 2, Base 16 The textbook uses subscripts to represent different bases (ie. A2F 16, 953.78 10, 1011.11 2 ) I will use special symbols to represent the different bases. The default base will be decimal, no special symbol for base 10. The 0x will be used for base 16 (0xA2F) The 0b will be used for base 2 (0b10101111) If ALL numbers on a page are the same base (ie, all in base 16 or base 2 or whatever) then no symbols will be used and a statement will be present that will state the base (ie, all numbers on this page are in base 16). V 0.4 5

Common Powers 2-3 = 0.125 2-2 = 0.25 2-1 =05 0.5 2 0 = 1 2 1 = 2 2 2 = 4 2 3 = 8 2 4 = 16 2 5 =32 2 6 = 64 2 7 = 128 2 8 = 256 2 9 = 512 2 10 = 1024 2 11 = 2048 2 12 = 4096 16 0 = 1 = 2 0 16 1 =16=2 = 4 16 2 = 256 = 2 8 16 3 = 4096 = 2 12 2 10 = 1024 = 1 K 2 20 = 1048576 = 1 M (1 Mega) = 1024 K = 2 10 * 2 10 2 30 = 1073741824 = 1 G (1 Giga) V 0.4 6

Conversion of Any Base to Decimal Converting from ANY base to decimal is done by multiplying each digit by its weight and summing. Binary to Decimal 0b1011.11 = 1*2 3 + 0*2 2 + 1*2 1 + 1*2 0 + 1*2-1 + 1*2-2 = 8 + 0 + 2 + 1 + 0.5 + 0.25 =1175 11.75 Hex to Decimal 0xA2F = 10*16 2 + 2*16 1 + 15*16 0 = 10 * 256 + 2 * 16 + 15 * 1 = 2560 + 32 + 15 = 2607 V 0.4 7

Conversion of Decimal Integer To ANY Base Divide Number N by base R until quotient is 0. Remainder at EACH step is a digit in base R, from Least Significant digit to Most significant digit. Convert 53 to binary 53/2 = 26, rem = 1 Least Significant Digit 26/2 = 13, rem = 0 13/2 = 6, rem = 1 6/2 = 3, rem = 0 3/2 = 1, rem = 1 1/2 = 0, rem = 1 Most Significant Digit 53 = 0b 110101 = 1*2 12+ 5 +1*2 2+ 4 +0*2 2+ 3 +1*2 2+ 2 +0*2 2+ 1 +1*2 0 = 32 + 16 + 0 + 4 + 0 + 1 = 53 V 0.4 8

Least Significant Digit Most Significant Digit 53 = 0b 110101 Most Significant Digit Least Significant ifi Digit it (has weight of 2 5 or (has weight of 2 0 or 1). 32). For base 2, also For base 2, also called called Most Significant ifi Least Significant Bit Bit (MSB). Always (LSB). Always LEFTMOST digit. RIGHTMOST digit. V 0.4 9

Convert 53 to Hex More Conversions 53/16 = 3, rem = 5 3/16 = 0, rem=3 53 = 0x35 = 3*16 1 +5*16 0 = 48 + 5 = 53 V 0.4 10

Hex (base 16) to Binary Conversion Each Hex digit represents 4 bits. To convert a Hex number to Binary, simply convert each Hex digit to its four bit value. Hex Digits to binary: 0x0 = 0b 0000 0x1 = 0b 0001 0x2 = 0b 0010 0x3 = 0b 0011 0x4 = 0b 0100 0x5 = 0b 0101 0x6 = 0b 0110 0x7 = 0b 0111 0x8 = 0b 1000 Hex Digits it to binary (cont): 0x9 = 0b 1001 0xA = 0b 1010 0xB = 0b 1011 0xC = 0b 1100 0xD = 0b 1101 0xE = 0b 1110 0xF = 0b 1111 V 0.4 11

Hex to Binary, Binary to Hex 0xA2F = 0b 1010 0010 1111 0x345 = 0b 0011 0100 0101 Binary to Hex is just the opposite, create groups of 4 bits starting with least significant bits. If last group does not have 4 bits, then pad with zeros for unsigned numbers. 0b 1010001 = 0b 0101 0001 = 0x51 Padded with a zero V 0.4 12

A Trick! If faced with a large binary number that has to be converted to decimal, I first convert the binary number to HEX, then convert the HEX to decimal. Less work! 0b 110111110011 = 0b 1101 1111 0011 = D F 3 = 13 * 16 2 + 15 * 16 1 + 3*16 0 = 13 * 256 + 15 * 16 + 3 * 1 = 3328 + 240 + 3 = 3571 Of course, you can also use the binary, hex conversion feature on your calculator. Too bad calculators won t be allowed on the first test, though... V 0.4 13

Binary Numbers Again Recall than N binary digits (N bits) can represent unsigned integers from 0 to 2 N -1. 4 bits = 0 to 15 8 bits = 0 to 255 16 bits = 0 to 65535 Besides simply representation, ti we would like to also do arithmetic operations on numbers in binary form. Principle operations are addition and subtraction. V 0.4 14

Binary Codes (cont.) N bits (or N binary Digits) can represent 2 N different values. (for (o example, pe, 4 bits scan represent epese 2 4 or 16 different e values) N bits can take on unsigned decimal values from 0 to 2 N -1. Codes usually given in tabular form. 000 black 001 red 010 pink 011 yellow 100 brown 101 blue 110 green 111 white V 0.4 26

Codes for Characters Also need to represent Characters as digital data. The ASCII code (American Standard Code for Information Interchange) is a 7-bit code for Character data. Typically 8 bits are actually used with the 8th bit being zero or used for error detection (parity checking). 8 bits = 1 Byte. A = % 01000001 = 0x41 & = % 00100110 = 0x26 7 bits can only represent 2 7 different values (128). This enough to represent the Latin alphabet (A-Z, a-z, 0-9, punctuation marks, some symbols like $), but what about other symbols or other languages? V 0.4 27

ASCII American Standard Code for Information Interchange V 0.4 28

UNICODE UNICODE is a 16-bit code for representing alphanumeric data. With 16 bits, can represent 2 16 or 65536 different symbols. 16 bits = 2 Bytes per character (the extended version uses 32-bits per character, or 4 bytes, for 4,294,967,296 different symbols). 0x0041-005A A-Z 0x0061-4007A a-z Some other alphabet/symbol ranges 0x3400-3d2d Korean Hangul Symbols 0x3040-318F Hiranga, Katakana, Bopomofo, Hangul 04E009FFF 0x4E00-9FFF Han (Chinese, Japanese, Korean) UNICODE used by Web browsers, Java, most software these days. V 0.4 29

Binary Arithmetic, Subtraction The rules for binary arithmetic are: 0 + 0 = 0, carry = 0 1 + 0 = 1, carry = 0 0 + 1 = 1, carry = 0 The rules for binary subtraction are: 0-0 = 0, borrow = 0 1-0 = 1, borrow = 0 0-1 = 1, borrow = 1 1 + 1 = 0, carry = 1 1-1 = 0, borrow = 0 Borrows, Carries from digits to left of current of digit. Binary subtraction, addition works just the same as decimal addition, subtraction. V 0.4 15

Decimal 34 Binary, Decimal addition + 17 ------ 51 from LSD to MSD: 7+4 = 1; with carry out of 1 to next column 1 (carry) + 3 + 1 = 5. answer = 51. Binary 0b 101011 + 0b 000001 --------------- 101100 From LSB to MSB: 1+1 = 0, carry of 1 1 (carry)+1+0 = 0, carry of 1 1 (carry)+0 + 0 = 1, no carry 1+0 = 1 0 + 0 = 0 1 + 0 = 1 answer = % 101100 V 0.4 16

Subtraction Decimal 900-001 ------- 899 0-1 = 9; with borrow of 1 from next column 0-1 (borrow) - 0 = 9, with borrow of 1 9-1 (borrow) - 0 = 8. Answer = 899. Binary 0b 100-0b 001 ------- 011 0-1 = 1; with borrow of 1 from next column 0-1 (borrow) - 0 = 1, with borrow of 1 1-1 (borrow) - 0 = 0. Answer = % 011. V 0.4 17

Hex Addition 0x3A + 0x28 -------- 0x62 A+8 = 2; with carry out of 1 to next column 1 (carry) + 3 + 2 = 6. answer = 0x62 Decimal check. 0x3A = 3 * 16 + 10 = 58 0x28 = 2 * 16 + 8 = 40 58 + 40 = 98 0x62 = 6 * 16 + 2 = 96 + 2 = 98!! V 0.4 18

Hex addition again Why is 0xA + 0x8 = 2 with a carry out of 1? The carry out has a weight equal to the BASE (in this case 16). The digit that gets left is the excess (BASE - sum). Ah + 8h = 10 + 8 = 18. 18 is GREATER than 16 (BASE), so need a carry out! Excess is 18 - BASE = 18-16 = 2, so 2 is digit. Exactly the same thing happens in Decimal. 5 + 7 = 2, carry of 1. 5 + 7 = 12, this is greater than 10!. So excess is 12-10 = 2, carry of 1. V 0.4 19

Hex Subtraction 0x34-0x27 ---------- 0x0D 4-7 = D; with borrow of 1 from next column Decimal check. 0x34 = 3 * 16 + 4 = 52 0x27 = 2 * 16 + 7 = 39 52-39 = 13 0x0D = 13!! 3-1 (borrow) - 2 = 0. answer = 0x0D. V 0.4 20

Hex subtraction again Why is 0x4 0x7 = 0xD with a borrow of 1? The borrow has a weight equal to the BASE (in this case 16). BORROW +0x4 0x7 = 16 + 4-7 = 20-7 = 13 = 0xD. 0xD is the result of the subtraction with the borrow. Exactly the same thing happens in decimal. 3-8 = 5 with borrow of 1 borrow + 3-8 = 10 + 3-8 = 13-8 = 5. V 0.4 21

Unsigned Overflow In this class I will use 8 bit precision most of the time, 16 bit occasionally. Overflow occurs when I add or subtract two numbers, and the correct result is a number that is outside of the range of allowable numbers for that precision. I can have both unsigned and signed overflow (more on signed numbers later) 8 bits -- unsigned integers 0 to 2 8-1 or 0 to 255. 16 bits -- unsigned dintegers 0 to 2 16-1 or 0 to 65535 V 0.4 23

Unsigned Overflow Example Assume 8 bit precision; i ie. I can t store any more than 8 bits for each number. Lets add 255 + 1 = 256. The number 256 is OUTSIDE the range of 0 to 255! What happens during the addition? 255 = 0x FF /= means Not Equal + 1 = 0x 01 ------------------- 256 /= 0x00 0xF + 1 = 0, carry out 0xF + 1 (carry) + 0 = 0, carry out Carry out of MSB falls off end, No place to put it!!! Final answer is WRONG because could not store carry out. V 0.4 24

Unsigned Overflow A carry out of the Most Significant Digit (MSD) or Most Significant Bit (MSB) is an OVERFLOW indicator for addition of UNSIGNED numbers. The correct result has overflowed the number range for that precision, and thus the result is incorrect. If we could STORE the carry out of the MSD, then the answer would be correct. But we are assuming it is discarded because of fixed precision, so the bits we have left are the incorrect answer. V 0.4 25