# Representation of Data

Save this PDF as:

Size: px
Start display at page:

## Transcription

1 Representation of Data In contrast with higher-level programming languages, C does not provide strong abstractions for representing data. Indeed, while languages like Racket has a rich notion of data type integers, floats, strings, tuples, lists, etc. C has a low-level perspective on (primitive) data: a datum is either an integer or float of some finite size. While inconvenient at times, this perspective allows C programs to manipulate data in ways that are impossible in other languages. In turn, programmers are able to maximize performance, minimize space usage, perform other sorts of bit-level tricks, or otherwise have a better handle on precisely how data is represented in their programs. In order to take advantage of the benefits that systems programming offers, the programmer must understand these various representations and able to manipulate their data at this level. Because C breaks up data in two sorts, integers and floats, we study each in turn. Integer Data Integer data correspond to numbers without fractional components. C represents integer data using the primitive types char, int, and their various modifications with short, long, and unsigned. Bits and Bytes A bit, a value that is either 0 or 1, is the fundamental unit of data in modern computing. All data in a computer is ultimately realized as sequences of 0 and 1. This concept came about with the origins of computing in the punch cards used to power Joseph Marie Jacquard s automated looms in the early 1800s and Herman Hollerith s counting machines in the late 1800s. Punch cards are pieces of thick paper adorned with grids of circles (or other shapes) that may be perforated (representing a 1) or not (representing a 0). Machines are fed these punch cards and through mechanical or electric means, detect the perforations and interprets them as commands or data. In a modern-day computer, bits are realized as electrical charge within circuits. In particular, a latch or flip-flop is an elementary circuit that stores a stable electrical charge. A low charge is interpreted as one bit value (usually 0) and a high charge is represented as a high bit value (usually 1). A computer is composed of many such circuits, e.g., an 8-core Core i7 Haswell-E Intel Processor alone has 2.6 billion of them 1 and the remaining parts of the computer, e.g., main 1 https://en.wikipedia.org/wiki/transistor_count 1

2 memory, contain many more! While programmers are sometimes concerned with manipulating individual bits, the primitives of C are composed of many bits. For example, on most platforms, a char is 8 bits, an int is 32 bits, and a double is 64 bits. It is most convenient to use a larger unit to talk about these sizes, the byte. A byte is simply 8 bits, so the size of a char is 1 byte, an int is 4 bytes, and a double is 8 bytes. The choice of 8 bits is not completely arbitrary; it is the smallest unit of addressable memory on most computer architectures because it is the size of a single character (a char) using the ANSI character standard. 2 That is, the computer allows us to access and modify data in terms of whole bytes rather than individual bits. Binary Representation Now that bits and bytes are defined, how does a computer use them to represent integer data? Recall that an integer is a number without a fractional portion, either positive, negative, or zero. To answer this question, we need to revisit the number system that we use to write down numbers. A number system is a way to write down a particular quantity on paper. For example, consider the number: It is easy to take for granted the meaning of this string of digits as eight thousand, four-hundred, and one. However, let s break down the meaning of the string precisely and then use that as motivation for how a computer represents an integer. Each digit is assigned a particular meaning based off its position in the string. Starting from right-to-left, the first position is traditionally called the ones-place, the second position the tens-place, the third position the hundredsplace, and finally the fourth position the thousands-place. Intuitively, this is how many of each type of value the string represents, i.e., there are 1 ones, 0 tens, 4 hundreds, and 8 thousands in this quantity. More formally, we can write this down as a summation of powers: 8401 = = = This way of writing numbers is called Hindu-Arabic number system. It is a positional (positions denote powers), decimal (the base of the powers is 10, commonly written base-10) number system. This is why the set of valid digits is 0 9: each position can take on 10 values denoting how many of each power a quantity can take on before it rolls over into the next power. However, the choice of base-10 seems arbitrary. Can we choose another base and represent the same range of numbers? The answer is yes and it leads us to the binary representation of integers that computers use. A binary number is simply a number written in positional, base-2 style. In base-2, each position only requires two possible values, traditionally written 0 and 1. For example, here is a binary 2 The ANSI character standard only accounts for English characters which was sufficient for the earliest computers. But as computers have become ubiquitous in society, programs need to account for many more characters than English, e.g., Cyrillic or Kanji letters. The standard for modern computing is Unicode which is capable of representing many more characters at the cost of being two bytes rather than one byte in size. 2

3 number: Like the traditional base-10 system, each position represents powers of different magnitude. However, in the base-2 system, the bases of the powers are two rather than ten. To determine what quantity this binary number represents, we can write down the quantity as a summation of powers: = = = 21. Note that because binary numbers use either 0s or 1s as digits, computing the value of a binary number amounts to adding powers of twos in various combinations. It is therefore useful to know the powers of two by memory as these numbers come up again and again when working at the level of bits and bytes: 2 0 = = = = = = = = = = = A computer represents integers as a sequence of bits of a pre-determined length. The quantity these bits represents corresponds to the value of the sequence of bits interpreted as a binary number. In C, this quantity corresponds to the number of bits dedicated to each type, e.g., a char is an integer value consisting of one byte (eight bits) and an int consists of four bytes (32 bits). Note that other bases are possible and are sometimes more convenient to use when representing longer strings of bits. Two common examples are octal numbers, base-8, and hexadecimal numbers, base-16. With octal numbers, the range of allowable digits is 0 7. For example, the quantity 21 (written in base-10) or (written in base-2) can be represented in octal as: 25 = = = 21. In contrast, base-16 requires 16 possible values in each digit. However, there only have 9 numbers, 0 9, in most written languages! To get around this limitation, hexadecimal uses the letters A F for the values 10 15, respectively: 76D = = = These different notations can be confusing because, for example, a string 10 has different interpretations depending on the base: In base-10, 10 = = = 10. 3

4 In base-2, 10 = = = 2. In base-8, 10 = = = 8. In base-16, 10 = = = 16. To distinguish between them, we usually include a prefix before the less common notations to denote what base they are in: 0b10 implies binary. 010 implies octal. 0x10 implies hexadecimal. In C, we can write octal or hexadecimal (but not binary) integer literals using these prefixes, e.g., int x1 = 010; // 8 int x2 = 0x10; // 16 which is useful when a program requires us to specify a bit pattern, a particular sequence of bits to be interpreted as an integer. Converting a Quantity To Binary When working in another base, in particular base-2, we will frequently have a quantity in mind and need to convert that quantity to a representation in this base. To derive an algorithm to do this, we utilize the summation of powers formula we used in the previous section to calculate the value of a particular numeric string. Generalizing the formula to an arbitrary binary string in base-2, a binary string composed of digits n 3 n 2 n 1 n 0 has the value: + n n n n If a number can be rewritten as a summation of powers in this form, we can simply read off the each of the digits to obtain a final string. In binary, this amounts to discovering how to decompose a quantity into a sum of powers of 2. For example, consider the number 193. To convert this into binary, we find the largest power of 2 that fits in 193 which is 2 7 = 128. We subtract this value from the original quantity to obtain = 65 and repeat the process. The largest power of 2 that fits in 65 is 2 6 = 64 leaving = 1 left over. The next largest power of 2 that fits is 2 1 = 1 leaving 1 1 = 0. Once we have reached zero, we are done. Finally, we note all the powers of two that we subtracted from our quantity and plug them into our formula, filling in 0s whenever we did not use that power of two in the process: 193 = Now we can read off the digits, producing the binary number 0b In summary, the algorithm to convert a quantity to binary proceeds as follows: 1. Repeatedly subtract the largest power of 2 that fits in the target quantity until you reach 0, noting each of the powers you use in the process. 4

5 2. In the resulting binary string, the positions corresponding to these powers become 1s; the remaining positions become 0s. Integral Operations Moving from a traditional number system to binary required changing the base-representation of written numbers. However, this is the only thing that fundamentally changes with respect to the number. The methods by which we carry out primitive operations over integers addition, subtraction, multiplication, and division proceed in the same way in binary as they did in decimal! To illustrate this point, consider adding together five to itself. In grade school, you learned how to perform this addition by lining the numbers on top of each other and adding each column of digits from right to left (i.e., from least-significant to most-significant digit): 5 + 5? Because = 10, we put the 1s digit as the result of the column (0) and carry over the tens digit into the next column. We continue the process until we have processed all the columns Binary addition proceeds in the same manner except that rather than working with the digits 0 9, we are working with just 0 and 1. This greatly simplifies the math performed at an individual column at the cost of having to deal with many more columns than before. For example, the binary expansion of 5 is 0b101. To add 0b101 to itself, we set up the columns like before: ? We add up columns like before except now rather than carrying when the result is greater than ten, we carry when the result is two ( 0b10 ): The final result is therefore 0b1010 which is the binary representation of 10. Subtraction works similarly except that we borrow from greater columns if subtraction in the current column would result in a negative result. For example, subtracting 0b01 from 0b10 yields the work: 5

6 Note that in base-2, the borrowed amount from the greater column is the quantity 2, just like how the borrowed amount in base-10 would be 10. Finally, multiplication and division behave similarly in base-2 as well. With multiplication, we multiply columns and then add the results: Or in other words, 2 2 = 4. Finally, the standard long division method also works over binary numbers which operates by performing repeated subtractions of the divisor from the dividend. Handling Negativity So far, our integers have conveniently been positive quantities. What happens if we need to represent negative values? In written notation, this is as simple as adding a negation sign, e.g., -0b10 is the quantity 2. However, when representing a negative value in a program, we don t have the luxury of simply writing down an additional symbol since all we have to work with are bits (0s and 1s). Recall that integer values in C are fixed size, that is, each number has a fixed number of bits dedicated to it. For example, each value of char type uses 8 bits (1 byte) in memory. One straightforward solution is to simply dedicate one of these bits to represent the sign of the integer, usually the left-most (most-significant) bit. Traditionally, an integer with a sign bit of 0 is positive and a sign bit of 1 means the number is negative. In this system, the value 5 would have the binary representation 0b , and the value -5 would have the binary representation 0b Note that by dedicating the left-most bit as the sign of the integer, the magnitude of representable numbers is smaller. The largest such number in this system occurs when all the bits are 1 except the sign-bit: 0b = 127 The smallest number occurs when all the bits are 1, including the sign-bit: 0b = 127 This is a reasonable first cut at representing negative numbers, but there are some fundamental problems with it. In particular, addition of positive and negative numbers is no longer straight forward, e.g., adding a 3-bit representation of 2 ( 0b010 ) and -2 ( 0b110 ) should be 0, however: ? 6

8 Sizes and Limits in C With this description of how integers are represented we can now understand the limits of integers and their operations in C. For example, the char type is an integer value of size one byte or eight bits. In twos complement, the maximum value of a char still corresponds to the binary number that contains all 1s except in the most-significant position: 0b = 127 If we overflow this number by adding 1, we obtain the bit pattern 0b which corresponds to the largest negative number possible using the twos complement representation: 128. Note that we recovered the negated quantity by reversing the twos complement process: subtract one (0b = ) and then flip the bits (0b = 128). This representation is why in C we see that we go from the largest possible number to the smallest possible number when we overflow. The maximum and minimum value of an int, and , are obtained by a similar analysis. In general, if an integer type has k bits, then the maximum possible value is given the formula: 2 k 1 1 For each of the k 1 bits dedicated to the number (the last bit is the effective sign bit), there are two possible values, 0 and 1. Therefore, the total possible values that can be represented by k 1 bits is = 2 k 1. The minus one comes from the fact that zero takes up one of these values. The minimum possible value is given by the formula: (2 k 1 ) Because there is only one representation of zero with twos complement, we can represent the entire range of negative numbers afforded by the k 1 bits. In many cases, however, we don t care about representing negative numbers and would like to use the final bit to increase the range of positive numbers we can represent. For example, the standard interpretation of a char is a character value, a mapping from a non-negative integer to a character defined by some standard such as the ANSI or Unicode standards. In this situation, we do not need negative values, so it is appropriate to mark such a type as unsigned to denote this fact: unsigned char ch = a ; // character value 97, 0b Note that this does not change the eight bits that constitute the char. It merely changes how the program interprets those eight bits rather than treating the left-most bit as a sign-bit, it is part of the number instead. Bitwise Operations Normally, a programmer does not need to worry about the low-level details of how integers are represented in their programs. However, when they do, it is usually because they have identified 8

9 a need to manipulate data at the byte level. To this end, C provides a number of bitwise operators that manipulate data at the bit-level. Bit Shifts One sort of operation we would like to do over a datum interpreted as a binary string is to shift the digits of the string left or right. The left-shift binary operator, written x << n takes a value x (interpreted as a binary string) and an integer n and shifts the bits of x n places to the left. For example, if x (of type char) contains the value 97 (in binary 0b ) and n is 3, then the left shift operator proceeds as follows: << Every digit is shifted three places to the left. Note that digits that fall off the left end are lost, in particular, the two 1s in the higher positions of the string. The right-shift binary operator, written x >> n is similar but performs a right-shift. For unsigned values, the behavior is also analogous to left-shift. For example, the expression x >> n where x contains 97 and has type unsigned char and n is 3 operates as follows: >> Note that the least-significant 1 was right-shifted out of the string. The behavior of right-shift is markedly different if the type of x is instead int (not unsigned). There is a question of what digits we use to fill in the left-most positions of the result. Suppose we are shifting the following values: >> 3? If we perform a naïve right shift, filling the most-significant positions with zero, the integer is no longer negative: >> This is called a logical shift. In contrast, an arithmetic shift uses the value of the sign bit to fill the positions: >>

10 In C, the behavior of right-shifting a signed datum is undefined, that is, the compiler is free to decide what sort of behavior it implements. Most compilers will choose to perform an arithmetic shift, preserving the sign bit. However, if a programmer writes code that uses bitwise operators, they have to take care to avoid these corner cases if they want their code to be portable (i.e., usable across many compilers and operating systems). In general, these bitwise operators only make sense when the underlying data are interpreted as unsigned values, so a programmer should ensure that their data is marked as such before performing bitwise operations. Bitwise Logical Operators In addition to shifts, C allows programs to perform logical operations at the bit level on data. The simplest of these operators is bitwise NOT or complement. Complement, written ~x flips the bits of x ~ The bitwise AND operator, written x & y, takes two integers and compares their corresponding bits, position-wise. A bit in the output of the bitwise AND operator is set to 1 if and only if the corresponding bits in x and y are also set to & In contrast, bitwise OR, written x y, sets a bit in the output to 1 if one or both of the corresponding bits in x and y are also set to Finally, the bitwise XOR or exclusive-or operator, written x ^ y, sets a bit in the output to 1 if exactly one of the corresponding bits in x or y are also set to ^ These bitwise operators can be combined to perform more higher-level operations on the individual bits of an integer. For example, suppose we had the following binary number, 0b , and we wished to see if the fifth bit of the binary number was 1. We can accomplish in a variety of ways. One method would be to shift the fifth bit down into the least-significant position, i.e., right-shift by four >>

11 Finally, to clear the remaining bits, we can create a bit mask that will zero out all the other digits except the least-significant. Performing a bitwise AND operation with 1 (in binary, 0b ) serves this purpose: & Now the final result is 0 (false) if the fifth bit is set to 0 and 1 (true) if the fifth bit is set to 1. We can generalize this approach into a function that checks to see if the kth bit of integer x is set to 1: bool isset(unsigned int x, int k) { return (x >> k) & 1; } An alternative approach would be to create a bit mask that is all 1s but in the fifth position and then bitwise AND that with the original number: & Note that if the fifth bit is set, then the result is non-zero (true); if it is not set, then result is zero (false). To obtain this bit mask, we can simply shift 1 five places to the left: << This results in an alternative implementation of isset: bool isset(unsigned int x, int k) { return x & (1 << k); } Both functions work perfectly fine, although a slight nod goes to the second implementation because it avoids the problems associated with right-shifting and whether the input is unsigned. 11

### Number Systems and. Data Representation

Number Systems and Data Representation 1 Lecture Outline Number Systems Binary, Octal, Hexadecimal Representation of characters using codes Representation of Numbers Integer, Floating Point, Binary Coded

### Unit 2: Number Systems, Codes and Logic Functions

Unit 2: Number Systems, Codes and Logic Functions Introduction A digital computer manipulates discrete elements of data and that these elements are represented in the binary forms. Operands used for calculations

### Introduction Number Systems and Conversion

UNIT 1 Introduction Number Systems and Conversion Objectives 1. Introduction The first part of this unit introduces the material to be studied later. In addition to getting an overview of the material

### Chapter II Binary Data Representation

Chapter II Binary Data Representation The atomic unit of data in computer systems is the bit, which is actually an acronym that stands for BInary digit. It can hold only 2 values or states: 0 or 1, true

### CHAPTER 3 Number System and Codes

CHAPTER 3 Number System and Codes 3.1 Introduction On hearing the word number, we immediately think of familiar decimal number system with its 10 digits; 0,1, 2,3,4,5,6, 7, 8 and 9. these numbers are called

### A First Book of C++ Chapter 2 Data Types, Declarations, and Displays

A First Book of C++ Chapter 2 Data Types, Declarations, and Displays Objectives In this chapter, you will learn about: Data Types Arithmetic Operators Variables and Declarations Common Programming Errors

### Decimal Numbers: Base 10 Integer Numbers & Arithmetic

Decimal Numbers: Base 10 Integer Numbers & Arithmetic Digits: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Example: 3271 = (3x10 3 ) + (2x10 2 ) + (7x10 1 )+(1x10 0 ) Ward 1 Ward 2 Numbers: positional notation Number

### 2.1 Binary Numbers. 2.3 Number System Conversion. From Binary to Decimal. From Decimal to Binary. Section 2 Binary Number System Page 1 of 8

Section Binary Number System Page 1 of 8.1 Binary Numbers The number system we use is a positional number system meaning that the position of each digit has an associated weight. The value of a given number

### Borland C++ Compiler: Operators

Introduction Borland C++ Compiler: Operators An operator is a symbol that specifies which operation to perform in a statement or expression. An operand is one of the inputs of an operator. For example,

### Binary Numbers. Bob Brown Information Technology Department Southern Polytechnic State University

Binary Numbers Bob Brown Information Technology Department Southern Polytechnic State University Positional Number Systems The idea of number is a mathematical abstraction. To use numbers, we must represent

### Here 4 is the least significant digit (LSD) and 2 is the most significant digit (MSD).

Number System Introduction Number systems provide the basis for all operations in information processing systems. In a number system the information is divided into a group of symbols; for example, 26

### NUMBERING SYSTEMS C HAPTER 1.0 INTRODUCTION 1.1 A REVIEW OF THE DECIMAL SYSTEM 1.2 BINARY NUMBERING SYSTEM

12 Digital Principles Switching Theory C HAPTER 1 NUMBERING SYSTEMS 1.0 INTRODUCTION Inside today s computers, data is represented as 1 s and 0 s. These 1 s and 0 s might be stored magnetically on a disk,

### Number Representation

Number Representation COMP375 Computer Organization and darchitecture t How do we represent data in a computer? At the lowest level, a computer is an electronic machine. works by controlling the flow of

### The largest has a 0 in the sign position and 0's in all other positions:

10.2 Sign Magnitude Representation Sign Magnitude is straight-forward method for representing both positive and negative integers. It uses the most significant digit of the digit string to indicate the

### CPE 323 Data Types and Number Representations

CPE 323 Data Types and Number Representations Aleksandar Milenkovic Numeral Systems: Decimal, binary, hexadecimal, and octal We ordinarily represent numbers using decimal numeral system that has 10 as

### NUMBER REPRESENTATIONS IN THE COMPUTER for COSC 120

NUMBER REPRESENTATIONS IN THE COMPUTER for COSC 120 First, a reminder of how we represent base ten numbers. Base ten uses ten (decimal) digits: 0, 1, 2,3, 4, 5, 6, 7, 8, 9. In base ten, 10 means ten. Numbers

### Chapter 2: Number Systems

Chapter 2: Number Systems Logic circuits are used to generate and transmit 1s and 0s to compute and convey information. This two-valued number system is called binary. As presented earlier, there are many

### Binary Representation and Computer Arithmetic

Binary Representation and Computer Arithmetic The decimal system of counting and keeping track of items was first created by Hindu mathematicians in India in A.D. 4. Since it involved the use of fingers

### Radix Number Systems. Number Systems. Number Systems 4/26/2010. basic idea of a radix number system how do we count:

Number Systems binary, octal, and hexadecimal numbers why used conversions, including to/from decimal negative binary numbers floating point numbers character codes basic idea of a radix number system

### Number Representation and Arithmetic in Various Numeral Systems

1 Number Representation and Arithmetic in Various Numeral Systems Computer Organization and Assembly Language Programming 203.8002 Adapted by Yousef Shajrawi, licensed by Huong Nguyen under the Creative

### Presented By: Ms. Poonam Anand

Presented By: Ms. Poonam Anand Know the different types of numbers Describe positional notation Convert numbers in other bases to base 10 Convert base 10 numbers into numbers of other bases Describe the

### Digital Logic. The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer.

Digital Logic 1 Data Representations 1.1 The Binary System The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer. The system we

### Digital Fundamentals

Digital Fundamentals with PLD Programming Floyd Chapter 2 29 Pearson Education Decimal Numbers The position of each digit in a weighted number system is assigned a weight based on the base or radix of

### A Short Introduction to Binary Numbers

A Short Introduction to Binary Numbers Brian J. Shelburne Department of Mathematics and Computer Science Wittenberg University 0. Introduction The development of the computer was driven by the need to

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

ECE Department Summer LECTURE #5: Number Systems EEL : Digital Logic and Computer Systems Based on lecture notes by Dr. Eric M. Schwartz Decimal Number System: -Our standard number system is base, also

### Numeral System and Its Importance ROOM: B405

Numeral System and Its Importance HONG@IS.NAIST.JP ROOM: B405 Contents Number System Introduction Number systems used by human Number systems used by computer Number System Conversion Signed Number Representation

### Chapter 2 Numeric Representation.

Chapter 2 Numeric Representation. Most of the things we encounter in the world around us are analog; they don t just take on one of two values. How then can they be represented digitally? The key is that

### Two s Complement Arithmetic

Two s Complement Arithmetic We now address the issue of representing integers as binary strings in a computer. There are four formats that have been used in the past; only one is of interest to us. The

### 1 Number System (Lecture 1 and 2 supplement)

1 Number System (Lecture 1 and 2 supplement) By Dr. Taek Kwon Many different number systems perhaps from the prehistoric era have been developed and evolved. Among them, binary number system is one of

### Section 1.4 Place Value Systems of Numeration in Other Bases

Section.4 Place Value Systems of Numeration in Other Bases Other Bases The Hindu-Arabic system that is used in most of the world today is a positional value system with a base of ten. The simplest reason

### Computer Science 281 Binary and Hexadecimal Review

Computer Science 281 Binary and Hexadecimal Review 1 The Binary Number System Computers store everything, both instructions and data, by using many, many transistors, each of which can be in one of two

### Base Conversion written by Cathy Saxton

Base Conversion written by Cathy Saxton 1. Base 10 In base 10, the digits, from right to left, specify the 1 s, 10 s, 100 s, 1000 s, etc. These are powers of 10 (10 x ): 10 0 = 1, 10 1 = 10, 10 2 = 100,

### MT1 Number Systems. In general, the number a 3 a 2 a 1 a 0 in a base b number system represents the following number:

MT1 Number Systems MT1.1 Introduction A number system is a well defined structured way of representing or expressing numbers as a combination of the elements of a finite set of mathematical symbols (i.e.,

### P A R T DIGITAL TECHNOLOGY

P A R T A DIGITAL TECHNOLOGY 1 CHAPTER NUMBERING SYSTEMS 1.0 INTRODUCTION This chapter discusses several important concepts including the binary, octal and hexadecimal numbering systems, binary data organization

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

Data Representation Section 3.1 Data Types Registers contain either data or control information Control information is a bit or group of bits used to specify the sequence of command signals needed for

### Number Systems Richard E. Haskell

NUMBER SYSTEMS D Number Systems Richard E. Haskell Data inside a computer are represented by binary digits or bits. The logical values of these binary digits are denoted by and, while the corresponding

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

Numeral Systems Which number is larger? 25 8 We need to distinguish between numbers and the symbols that represent them, called numerals. The number 25 is larger than 8, but the numeral 8 above is larger

### Chapter 4. Binary Data Representation and Binary Arithmetic

Christian Jacob 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

### By the end of the lecture, you should be able to:

Extra Lecture: Number Systems Objectives - To understand: Base of number systems: decimal, binary, octal and hexadecimal Textual information stored as ASCII Binary addition/subtraction, multiplication

### Switching Circuits & Logic Design

Switching Circuits & Logic Design Jie-Hong Roland Jiang 江介宏 Department of Electrical Engineering National Taiwan University Fall 2013 1 1 Number Systems and Conversion Babylonian number system (3100 B.C.)

### Computer is a binary digital system. Data. Unsigned Integers (cont.) Unsigned Integers. Binary (base two) system: Has two states: 0 and 1

Computer Programming Programming Language Is telling the computer how to do something Wikipedia Definition: Applies specific programming languages to solve specific computational problems with solutions

### Number Systems! Why Bits (Binary Digits)?!

Number Systems Why Bits (Binary Digits)? Computers are built using digital circuits Inputs and outputs can have only two values True (high voltage) or false (low voltage) Represented as and Can represent

### 1.3 Data Representation

8628-28 r4 vs.fm Page 9 Thursday, January 2, 2 2:4 PM.3 Data Representation 9 appears at Level 3, uses short mnemonics such as ADD, SUB, and MOV, which are easily translated to the ISA level. Assembly

### Digital Logic and Design (EEE-241) Lecture 2

Digital Logic and Design (EEE-241) Lecture 2 Dr. M. G. Abbas Malik abbas.malik@ciitlahore.edu.pk Picture Source: http://www.vanoast.com/old-portfolio/digital-design-logo-one%5ba%5d.jpg Previous lecture

### Lecture 2. Binary and Hexadecimal Numbers

Lecture 2 Binary and Hexadecimal Numbers Purpose: Review binary and hexadecimal number representations Convert directly from one base to another base Review addition and subtraction in binary representations

### CHAPTER THREE. 3.1 Binary Addition. Binary Math and Signed Representations

CHAPTER THREE Binary Math and Signed Representations Representing numbers with bits is one thing. Doing something with them is an entirely different matter. This chapter discusses some of the basic mathematical

### Chapter 1 Basic Concepts

Chapter 1 Basic Concepts 1.1 Welcome to Assembly Language 1 1.1.1 Good Questions to Ask 2 1.1.2 Assembly language Applications 5 1.1.3 Section Review 6 1.2 Virtual Machine Concept 7 1.2.1 History of PC

### 1 Basic Computing Concepts (4) Data Representations

1 Basic Computing Concepts (4) Data Representations The Binary System The Binary System is a way of writing numbers using only the digits 0 and 1. This is the method used by the (digital) computer. The

### Lab 1: Information Representation I -- Number Systems

Unit 1: Computer Systems, pages 1 of 7 - Department of Computer and Mathematical Sciences CS 1408 Intro to Computer Science with Visual Basic 1 Lab 1: Information Representation I -- Number Systems Objectives:

### Lab 1: Information Representation I -- Number Systems

Unit 1: Computer Systems, pages 1 of 7 - Department of Computer and Mathematical Sciences CS 1410 Intro to Computer Science with C++ 1 Lab 1: Information Representation I -- Number Systems Objectives:

### Encoding Systems: Combining Bits to form Bytes

Encoding Systems: Combining Bits to form Bytes Alphanumeric characters are represented in computer storage by combining strings of bits to form unique bit configuration for each character, also called

### Number Systems and Number Representation

Number Systems and Number Representation 1 For Your Amusement Question: Why do computer programmers confuse Christmas and Halloween? Answer: Because 25 Dec = 31 Oct -- http://www.electronicsweekly.com

### Tutorial C1. Conversion Between Number Bases. Objectives: Reading: Background: Binary Numbers

utorial C Conversion Between Number Bases Objectives: Reading: After this tutorial you should be able to convert decimal numbers to binary numbers (both unsigned and 2 s complement), and vice versa. You

### Lecture 2 - POGIL Activity

15213 - Lecture 2 - POGIL Activity Introduction In this activity you will learn about binary numbers. This activity was based on material developed by Professor Saturnino Garcia of the University of San

### CS 16: Assembly Language Programming for the IBM PC and Compatibles

CS 16: Assembly Language Programming for the IBM PC and Compatibles First, a little about you Your name Have you ever worked with/used/played with assembly language? If so, talk about it Why are you taking

### CSC 1103: Digital Logic. Lecture Six: Data Representation

CSC 1103: Digital Logic Lecture Six: Data Representation Martin Ngobye mngobye@must.ac.ug Mbarara University of Science and Technology MAN (MUST) CSC 1103 1 / 32 Outline 1 Digital Computers 2 Number Systems

### UNIT 2 : NUMBER SYSTEMS

UNIT 2 : NUMBER SYSTEMS page 2.0 Introduction 1 2.1 Decimal Numbers 2 2.2 The Binary System 3 2.3 The Hexadecimal System 5 2.4 Number Base Conversion 6 2.4.1 Decimal To Binary 6 2.4.2 Decimal to Hex 7

### CSCI 230 Class Notes Binary Number Representations and Arithmetic

CSCI 230 Class otes Binary umber Representations and Arithmetic Mihran Tuceryan with some modifications by Snehasis Mukhopadhyay Jan 22, 1999 1 Decimal otation What does it mean when we write 495? How

### ECE 0142 Computer Organization. Lecture 3 Floating Point Representations

ECE 0142 Computer Organization Lecture 3 Floating Point Representations 1 Floating-point arithmetic We often incur floating-point programming. Floating point greatly simplifies working with large (e.g.,

### CHAPTER 1 BINARY SYSTEM

STUDENT COPY DIGITAL & MICROPROCESSORS 3 CHAPTER 1 BINARY SYSTEM Base Conversion: A number a n, a n 1 a 2, a 1 a 0 a 1 a 2 a 3 expressed in a base r system has coefficient multiplied by powers of r. n

### Data types. lecture 4

Data types lecture 4 Information in digital computers is represented using binary number system. The base, i.e. radix, of the binary system is 2. Other common number systems: octal (base 8), decimal (base

### Logic Design. Dr. Yosry A. Azzam

Logic Design Dr. Yosry A. Azzam Binary systems Chapter 1 Agenda Binary Systems : Binary Numbers, Binary Codes, Binary Logic ASCII Code (American Standard Code for Information Interchange) Boolean Algebra

### Part 1 Theory Fundamentals

Part 1 Theory Fundamentals 2 Chapter 1 Information Representation Learning objectives By the end of this chapter you should be able to: show understanding of the basis of different number systems show

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

Decimal Division Remember 4th grade long division? 43 // quotient 12 521 // divisor dividend -480 41-36 5 // remainder Shift divisor left (multiply by 10) until MSB lines up with dividend s Repeat until

### 4 Operations On Data

4 Operations On Data 4.1 Source: Foundations of Computer Science Cengage Learning Objectives After studying this chapter, students should be able to: List the three categories of operations performed on

### Introduction to Computers and Programming

16.070 Introduction to Computers and Programming March 14 Recitation 6 Spring 2002 Topics: Quick review of PS4 issues Fundamental Data types ASCII / Arithmetic Conversion Number Systems / Logical Operation

### Levent EREN levent.eren@ieu.edu.tr A-306 Office Phone:488-9882 INTRODUCTION TO DIGITAL LOGIC

Levent EREN levent.eren@ieu.edu.tr A-306 Office Phone:488-9882 1 Number Systems Representation Positive radix, positional number systems A number with radix r is represented by a string of digits: A n

### The Essentials of Computer Organization and Architecture. Linda Null and Julia Lobur Jones and Bartlett Publishers, 2003

The Essentials of Computer Organization and Architecture Linda Null and Julia Lobur Jones and Bartlett Publishers, 2003 Chapter 2 Instructor's Manual Chapter Objectives Chapter 2, Data Representation,

### Number Representation

Number Representation Number System :: The Basics We are accustomed to using the so-called decimal number system Ten digits ::,,,3,4,5,6,7,8,9 Every digit position has a weight which is a power of Base

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

2/9/9 Binary number system Computer (electronic) systems prefer binary numbers Binary number: represent a number in base-2 Binary numbers 2 3 + 7 + 5 Some terminology Bit: a binary digit ( or ) Hexadecimal

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

Today Binary addition Representing negative numbers 2 Binary Addition Consider the following binary numbers: 0 0 1 0 0 1 1 0 0 0 1 0 1 0 1 1 How do we add these numbers? 3 Binary Addition 0 0 1 0 0 1 1

### This Unit: Floating Point Arithmetic. CIS 371 Computer Organization and Design. Readings. Floating Point (FP) Numbers

This Unit: Floating Point Arithmetic CIS 371 Computer Organization and Design Unit 7: Floating Point App App App System software Mem CPU I/O Formats Precision and range IEEE 754 standard Operations Addition

### CHAPTER TWO. 2.1 Unsigned Binary Counting. Numbering Systems

CHAPTER TWO Numbering Systems Chapter one discussed how computers remember numbers using transistors, tiny devices that act like switches with only two positions, on or off. A single transistor, therefore,

### Sessions 1, 2 and 3 Number Systems

COMP 1113 Sessions 1, 2 and 3 Number Systems The goal of these three class sessions is to examine ways in which numerical and text information can be both stored in computer memory and how numerical information

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

Binary Numbers In computer science we deal almost exclusively with binary numbers. it will be very helpful to memorize some binary constants and their decimal and English equivalents. By English equivalents

### DIGITAL NUMBERING SYSTEM

SUBCOURSE IT0339 EDITION B US ARMY INTELLIGENCE CENTER DIGITAL NUMBERING SYSTEM DIGITAL NUMBERING SYSTEMS Subcourse Number IT0339 EDITION B US ARMY INTELLIGENCE CENTER Fort Huachuca, AZ 85613-6000 2 Credit

### Arithmetic Processing. Basic Fixed Point NRS. Number Representation. Digit Values. Rule of Interpretation CS/EE 5830/6830 VLSI ARCHITECTURE

CS/EE 5830/6830 VLSI ARCHITECTURE Chapter 1 Basic Number Representations and Arithmetic Algorithms Arithmetic Processing AP = (operands, operation, results, conditions, singularities) Operands are: Set

### Information Science 1

Information Science 1 - Representa*on of Data in Memory- Week 03 College of Information Science and Engineering Ritsumeikan University Topics covered l Basic terms and concepts of The Structure of a Computer

### Note that the exponents also decrease by 1 with each column move to the right, so the

Base Systems Jacqueline A. Jones People use the decimal number system to perform arithmetic operations. Computers, on the other hand, use the binary system, which contains only two digits: 0 and 1. We

### Review of Number Systems Binary, Octal, and Hexadecimal Numbers and Two's Complement

Review of Number Systems Binary, Octal, and Hexadecimal Numbers and Two's Complement Topic 1: Binary, Octal, and Hexadecimal Numbers The number system we generally use in our everyday lives is a decimal

### Arithmetic of Number Systems

2 Arithmetic of Number Systems INTRODUCTION Arithmetic operations in number systems are usually done in binary because designing of logic networks is much easier than decimal. In this chapter we will discuss

### TECH. Arithmetic & Logic Unit. CH09 Computer Arithmetic. Number Systems. ALU Inputs and Outputs. Binary Number System

CH09 Computer Arithmetic CPU combines of ALU and Control Unit, this chapter discusses ALU The Arithmetic and Logic Unit (ALU) Number Systems Integer Representation Integer Arithmetic Floating-Point Representation

### EE 3170 Microcontroller Applications

EE 37 Microcontroller Applications Lecture 3 : Digital Computer Fundamentals - Number Representation (.) Based on slides for ECE37 by Profs. Sloan, Davis, Kieckhafer, Tan, and Cischke Number Representation

### Assembly Language for Intel-Based Computers, 4 th Edition. Chapter 1: Basic Concepts. Chapter Overview. Welcome to Assembly Language

Assembly Language for Intel-Based Computers, 4 th Edition Kip R. Irvine Chapter 1: Basic Concepts Slides prepared by Kip R. Irvine Revision date: 10/27/2002 Chapter corrections (Web) Printing a slide show

### 198:211 Computer Architecture

198:211 Computer Architecture Topics: Lecture 8 (W5) Fall 2012 Data representation 2.1 and 2.2 of the book Floating point 2.4 of the book 1 Computer Architecture What do computers do? Manipulate stored

### The programming language C. sws1 1

The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan

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

Exercises 1 - number representations Questions 1. Give the 16 bit signed (twos complement) representation of the following decimal numbers, and convert to hexadecimal: (a) 3012 (b) - 435 2. For each of

### Number Systems and Base Conversions

Number Systems and Base Conversions As you know, the number system that we commonly use is the decimal or base- 10 number system. That system has 10 digits, 0 through 9. While it's very convenient for

### Data Representation. Representing Data

Data Representation COMP 1002/1402 Representing Data A computer s basic unit of information is: a bit (Binary digit) An addressable memory cell is a byte (8 bits) Capable of storing one character 10101010

### Numbering Systems. InThisAppendix...

G InThisAppendix... Introduction Binary Numbering System Hexadecimal Numbering System Octal Numbering System Binary Coded Decimal (BCD) Numbering System Real (Floating Point) Numbering System BCD/Binary/Decimal/Hex/Octal

### CHAPTER 2 Data Representation in Computer Systems

CHAPTER 2 Data Representation in Computer Systems 2.1 Introduction 47 2.2 Positional Numbering Systems 48 2.3 Converting Between Bases 48 2.3.1 Converting Unsigned Whole Numbers 49 2.3.2 Converting Fractions

### Introduction ToNumber Systems

Introduction ToNumber Systems Collected by: Zainab Alkadhem Page 1 of 25 Digital systems have such a prominent role in everyday life that we refer to the present technological period as the digital age.

### 1 / 40. Data Representation. January 9 14, 2013

1 / 40 Data Representation January 9 14, 2013 Quick logistical notes In class exercises Bring paper and pencil (or laptop) to each lecture! Goals: break up lectures, keep you engaged chance to work through

### Digital Electronics. 1.0 Introduction to Number Systems. Module

Module 1 www.learnabout-electronics.org Digital Electronics 1.0 Introduction to What you ll learn in Module 1 Section 1.0. Recognise different number systems and their uses. Section 1.1 in Electronics.

### 1- Introduction. Bit: The most basic unit of information in a digital computer (On/Off ; 0/1 state)

Objectives: Chapter 2 : Introduction 1- Introduction 2- Positional Numbering System 3- Decimal to binary conversion 4- Signed integer representation 5- Floating-point representation 1- Introduction Bit:

### Bits, Data Types, and Operations. University of Texas at Austin CS310H - Computer Organization Spring 2010 Don Fussell

Bits, Data Types, and Operations University of Texas at Austin CS3H - Computer Organization Spring 2 Don Fussell How do we represent data in a computer? At the lowest level, a computer is an electronic

### Algorithms and Data Structures

Algorithms and Data Structures 5. Computer Memory Łódź 2012 Bits and Bytes Computer memory can be categorized according to access speed and size Type Access speed Proximity to CPU - Computer memory can