Bits, Bytes and Integers Part 1

Similar documents
Carnegie Mellon. Bryant and O Hallaron, Computer Systems: A Programmer s Perspective, Third Edition

Bits, Bytes, and Integers

Bits, Bytes, and Integers

CS140 Lecture 08: Data Representation: Bits and Ints. John Magee 13 February 2017

BITS, BYTES, AND INTEGERS

Lecture 5-6: Bits, Bytes, and Integers

Jin-Soo Kim Systems Software & Architecture Lab. Seoul National University. Integers. Spring 2019

Computer Systems CEN591(502) Fall 2011

Bits, Bytes, and Integers August 26, 2009

Systems Programming and Computer Architecture ( )

Integers. Dr. Steve Goddard Giving credit where credit is due

ICS Instructor: Aleksandar Kuzmanovic TA: Ionut Trestian Recitation 2

Integers Sep 3, 2002

Representing and Manipulating Integers Part I

CS 33. Data Representation, Part 2. CS33 Intro to Computer Systems VII 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

Bits, Bytes, and Integers Part 2

CS 33. Data Representation, Part 1. CS33 Intro to Computer Systems VII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Systems 1. Integers. Unsigned & Twoʼs complement. Addition, negation, multiplication

Integers. Today. Next time. ! Numeric Encodings! Programming Implications! Basic operations. ! Floats

Arithmetic and Bitwise Operations on Binary Data

Representing and Manipulating Integers. Jo, Heeseung

Bits, Bytes and Integers

Topics of this Slideset. CS429: Computer Organization and Architecture. Encoding Integers: Unsigned. C Puzzles. Integers

CS429: Computer Organization and Architecture

CS 33. Data Representation, Part 2. CS33 Intro to Computer Systems VIII 1 Copyright 2017 Thomas W. Doeppner. All rights reserved.

Arithmetic and Bitwise Operations on Binary Data

CSCI2467: Systems Programming Concepts

Representa7on of integers: unsigned and signed Conversion, cas7ng Expanding, trunca7ng Addi7on, nega7on, mul7plica7on, shiaing

Integer Encoding and Manipulation

But first, encode deck of cards. Integer Representation. Two possible representations. Two better representations WELLESLEY CS 240 9/8/15

Foundations of Computer Systems

Page 1. Where Have We Been? Chapter 2 Representing and Manipulating Information. Why Don t Computers Use Base 10?

Representing Integers. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Bits and Bytes. Why bits? Representing information as bits Binary/Hexadecimal Byte representations» numbers» characters and strings» Instructions

Integer Arithmetic. CS 347 Lecture 03. January 20, 1998

Integers II. CSE 351 Autumn Instructor: Justin Hsia

Representing Integers

Why Don t Computers Use Base 10? Lecture 2 Bits and Bytes. Binary Representations. Byte-Oriented Memory Organization. Base 10 Number Representation

Why Don t Computers Use Base 10? Lecture 2 Bits and Bytes. Binary Representations. Byte-Oriented Memory Organization. Base 10 Number Representation

Bits and Bytes: Data Presentation Mohamed Zahran (aka Z)

Integers II. CSE 351 Autumn 2018

Computer Organization: A Programmer's Perspective

Integers II. CSE 351 Autumn Instructor: Justin Hsia

Bits, Bytes, and Integers. Bits, Bytes, and Integers. The Decimal System and Bases. Everything is bits. Converting from Decimal to Binary

Bits and Bytes January 13, 2005

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2

Page # CISC360. Integers Sep 11, Encoding Integers Unsigned. Encoding Example (Cont.) Topics. Twoʼs Complement. Sign Bit

Bitwise Data Manipulation. Bitwise operations More on integers

Hardware: Logical View

Manipulating Integers

C Puzzles! Taken from old exams. Integers Sep 3, Encoding Integers Unsigned. Encoding Example (Cont.) The course that gives CMU its Zip!

Data III & Integers I

CS 270: Computer Organization. Integer Arithmetic Operations

Topics of this Slideset. CS429: Computer Organization and Architecture. It s Bits All the Way Down. Why Binary? Why Not Decimal?

CS429: Computer Organization and Architecture

REMEMBER TO REGISTER FOR THE EXAM.

Data III & Integers I

In case you didn t get it (or you were too lazy to check)

Simple Data Types in C. Alan L. Cox

Bits, Bytes, and Integers

CS107, Lecture 3 Bits and Bytes; Bitwise Operators

CS107, Lecture 3 Bits and Bytes; Bitwise Operators

Data III & Integers I

Integer Representation

CSC 2400: Computer Systems. Bit- Level vs. Logical Opera<ons. Bit- Level Operators. Common to C and Java &,, ~, ^, <<, >>

Computer Organization & Systems Exam I Example Questions

Integer Representation

CS 107 Lecture 3: Integer Representations

COMP2611: Computer Organization. Data Representation

Page 1 CISC360. Encoding Integers Unsigned. Integers Sep 8, Numeric Ranges. Encoding Example (Cont.)

CS 107 Lecture 2: Bits and Bytes (continued)

Integer Representation Floating point Representation Other data types

Arithmetic Operators. Portability: Printing Numbers

Beginning C Programming for Engineers

Bits, Bytes, and Integers. Data Representa+on: Base- 2 number representa+on. Binary Representa+ons. Encoding Byte Values. Example Data Representa+ons

CS107, Lecture 2 Bits and Bytes; Integer Representations

2.1. Unit 2. Integer Operations (Arithmetic, Overflow, Bitwise Logic, Shifting)

Bits, Bytes, and Integer

Number Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers

Basic operators, Arithmetic, Relational, Bitwise, Logical, Assignment, Conditional operators. JAVA Standard Edition

DRAM uses a single capacitor to store and a transistor to select. SRAM typically uses 6 transistors.

Overview of C. Basic Data Types Constants Variables Identifiers Keywords Basic I/O

CS113: Lecture 3. Topics: Variables. Data types. Arithmetic and Bitwise Operators. Order of Evaluation

SIGNED AND UNSIGNED SYSTEMS

Memory, Data, & Addressing II

CSC 8400: Computer Systems. Represen3ng and Manipula3ng Informa3on. Background: Number Systems

ISA 563 : Fundamentals of Systems Programming

Data Representation. DRAM uses a single capacitor to store and a transistor to select. SRAM typically uses 6 transistors.

Binary Values. CSE 410 Lecture 02

Programming refresher and intro to C programming

The Design of C: A Rational Reconstruction

The Design of C: A Rational Reconstruction"

Processor. Lecture #2 Number Rep & Intro to C classic components of all computers Control Datapath Memory Input Output

CS 24: INTRODUCTION TO. Spring 2015 Lecture 2 COMPUTING SYSTEMS

Number Systems Standard positional representation of numbers: An unsigned number with whole and fraction portions is represented as:

1.1. Unit 1. Integer Representation

Inf2C - Computer Systems Lecture 2 Data Representation

Digital Systems. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

ECE 250 / CS 250 Computer Architecture. C to Binary: Memory & Data Representations. Benjamin Lee

EE292: Fundamentals of ECE

Transcription:

Bits, Bytes and Integers Part 1 15-213/18-213/15-513: Introduction to Computer Systems 2 nd Lecture, Jan. 18, 2018 Instructors: Franz Franchetti Seth Copen Goldstein Brian Railing 1

Announcements Waitlist Please be patient. Get the work done so you will be ready when you get into the class Linux Bootcamp this Sunday, Rashid, 7pm First Recitation this coming Monday AIV Course, please complete by Sunday Lab 0 Due this Sunday No grace days No late submissions Redshelf will be on canvas soon 2

Waitlist questions 15-213: Mary Widom (marwidom@cs.cmu.edu) 18-213: ECE Academic services ece-asc@andrew.cmu.edu 15-513: Mary Widom (marwidom@cs.cmu.edu) Please don t contact the instructors with waitlist questions. 3

Bootcamp 7pm Sunday in Rashid Linux basics Git basics Things like: How to ssh to the shark machines from windows or linux How to setup a directory on afs with the right permissions How to initialize a directory for git The basics of using git as you work on the assignment Basic linux tools like: tar, make, gcc, 4

Today: Bits, Bytes, and Integers Representing information as bits Bit-level manipulations Integers Representation: unsigned and signed Conversion, casting Expanding, truncating Addition, negation, multiplication, shifting Summary Representations in memory, pointers, strings 6

Everything is bits Each bit is 0 or 1 By encoding/interpreting sets of bits in various ways Computers determine what to do (instructions) and represent and manipulate numbers, sets, strings, etc Why bits? Electronic Implementation Easy to store with bistable elements Reliably transmitted on noisy and inaccurate wires 1.1V 0.9V 0.2V 0.0V 0 1 0 7

For example, can count in binary Base 2 Number Representation Represent 15213 10 as 11101101101101 2 Represent 1.20 10 as 1.0011001100110011[0011] 2 Represent 1.5213 X 10 4 as 1.1101101101101 2 X 2 13 8

Encoding Byte Values Byte = 8 bits Binary 000000002 to 111111112 Decimal: 010 to 25510 Hexadecimal 0016 to FF16 Base 16 number representation Use characters 0 to 9 and A to F Write FA1D37B16 in C as 0xFA1D37B 0xfa1d37b 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111 15213: 0011 1011 0110 1101 3 B 6 D 9

Example Data Representations C Data Type Typical 32-bit Typical 64-bit x86-64 char 1 1 1 short 2 2 2 int 4 4 4 long 4 8 8 float 4 4 4 double 8 8 8 pointer 4 8 8 10

Today: Bits, Bytes, and Integers Representing information as bits Bit-level manipulations Integers Representation: unsigned and signed Conversion, casting Expanding, truncating Addition, negation, multiplication, shifting Summary Representations in memory, pointers, strings 11

Boolean Algebra Developed by George Boole in 19th Century Algebraic representation of logic Encode True as 1 and False as 0 And Or A&B = 1 when both A=1 and B=1 A B = 1 when either A=1 or B=1 Not ~A = 1 when A=0 Exclusive-Or (Xor) A^B = 1 when either A=1 or B=1, but not both 12

General Boolean Algebras Operate on Bit Vectors Operations applied bitwise 01101001 & 01010101 01000001 01101001 01010101 01111101 01101001 ^ 01010101 00111100 ~ 01010101 01000001 01111101 00111100 10101010 All of the Properties of Boolean Algebra Apply 13

Example: Representing & Manipulating Sets Representation Width w bit vector represents subsets of {0,, w 1} a j = 1 if j A 01101001 { 0, 3, 5, 6 } 76543210 01010101 { 0, 2, 4, 6 } 76543210 Operations & Intersection 01000001 { 0, 6 } Union 01111101 { 0, 2, 3, 4, 5, 6 } ^ Symmetric difference 00111100 { 2, 3, 4, 5 } ~ Complement 10101010 { 1, 3, 5, 7 } 14

Bit-Level Operations in C Operations &,, ~, ^ Available in C Apply to any integral data type long, int, short, char, unsigned View arguments as bit vectors Arguments applied bit-wise Examples (Char data type) ~0x41 0xBE ~010000012 101111102 ~0x00 0xFF ~000000002 111111112 0x69 & 0x55 0x41 011010012 & 010101012 010000012 0x69 0x55 0x7D 011010012 010101012 011111012 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111 15

Bit-Level Operations in C Operations &,, ~, ^ Available in C Apply to any integral data type long, int, short, char, unsigned View arguments as bit vectors Arguments applied bit-wise Examples (Char data type) ~0x41 0xBE ~010000012 00012 101111102 11102 ~0x00 0xFF ~000000002 00002 111111112 11112 0x69 & 0x55 0x41 011010012 10012 & 010101012 01012 010000012 0100 00012 0x69 0x55 0x7D 011010012 10012 010101012 01012 011111012 0111 11012 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 A 10 1010 B 11 1011 C 12 1100 D 13 1101 E 14 1110 F 15 1111 16

Contrast: Logic Operations in C Contrast to Bit-Level Operators Logic Operations: &&,,! View 0 as False Anything nonzero as True Always return 0 or 1 Early termination Examples (char data type)!0x41 0x00!0x00 0x01!!0x41 0x01 Watch out for && vs. & (and vs. ) one of the more common oopsies in C programming 0x69 && 0x55 0x01 0x69 0x55 0x01 p && *p (avoids null pointer access) 17

Contrast: Logic Operations in C Contrast to Bit-Level Operators Logic Operations: &&,,! View 0 as False Anything nonzero as True Always return 0 or 1 Early termination Examples (char data type)!0x41 0x00!0x00 0x01!!0x41 0x01 0x69 && 0x55 0x01 0x69 0x55 0x01 p && *p (avoids null pointer access) 18

Shift Operations Left Shift: x << y Shift bit-vector x left y positions Throw away extra bits on left Fill with 0 s on right Right Shift: x >> y Shift bit-vector x right y positions Throw away extra bits on right Logical shift Fill with 0 s on left Arithmetic shift Replicate most significant bit on left Undefined Behavior Shift amount < 0 or word size Argument x 01100010 << 3 00010000 Log. >> 2 00011000 Arith. >> 2 00011000 Argument x 10100010 << 3 00010000 Log. >> 2 00101000 Arith. >> 2 11101000 19

Today: Bits, Bytes, and Integers Representing information as bits Bit-level manipulations Integers Representation: unsigned and signed Conversion, casting Expanding, truncating Addition, negation, multiplication, shifting Summary Representations in memory, pointers, strings Summary 20

Encoding Integers Unsigned w 1 B2U(X) = x i 2 i i=0 Two s Complement w 2 B2T(X) = x w 1 2 w 1 + x i 2 i i=0 short int x = 15213; short int y = -15213; C short 2 bytes long Decimal Hex Binary x 15213 3B 6D 00111011 01101101 y -15213 C4 93 11000100 10010011 Sign Bit For 2 s complement, most significant bit indicates sign 0 for nonnegative 1 for negative Sign Bit 21

Two-complement: Simple Example 10 = -16 8 4 2 1 0 1 0 1 0 8+2 = 10-10 = -16 8 4 2 1 1 0 1 1 0-16+4+2 = -10 22

Two-complement Encoding Example (Cont.) x = 15213: 00111011 01101101 y = -15213: 11000100 10010011 Weight 15213-15213 1 1 1 1 1 2 0 0 1 2 4 1 4 0 0 8 1 8 0 0 16 0 0 1 16 32 1 32 0 0 64 1 64 0 0 128 0 0 1 128 256 1 256 0 0 512 1 512 0 0 1024 0 0 1 1024 2048 1 2048 0 0 4096 1 4096 0 0 8192 1 8192 0 0 16384 0 0 1 16384-32768 0 0 1-32768 Sum 15213-15213 23

Numeric Ranges Unsigned Values UMin = 0 000 0 UMax = 2 w 1 111 1 Two s Complement Values TMin = 2 w 1 100 0 TMax = 2 w 1 1 011 1 Minus 1 111 1 Values for W = 16 Decimal Hex Binary UMax 65535 FF FF 11111111 11111111 TMax 32767 7F FF 01111111 11111111 TMin -32768 80 00 10000000 00000000-1 -1 FF FF 11111111 11111111 0 0 00 00 00000000 00000000 24

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 TMin -128-32,768-2,147,483,648-9,223,372,036,854,775,808 Observations TMin = TMax + 1 Asymmetric range UMax = 2 * TMax + 1 C Programming #include <limits.h> Declares constants, e.g., ULONG_MAX LONG_MAX LONG_MIN Values platform specific 25

Unsigned & Signed Numeric Values X B2U(X) B2T(X) 0000 0 0 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 5 5 0110 6 6 0111 7 7 1000 8 8 1001 9 7 1010 10 6 1011 11 5 1100 12 4 1101 13 3 1110 14 2 1111 15 1 Equivalence Same encodings for nonnegative values Uniqueness Every bit pattern represents unique integer value Each representable integer has unique bit encoding Can Invert Mappings U2B(x) = B2U -1 (x) Bit pattern for unsigned integer T2B(x) = B2T -1 (x) Bit pattern for two s comp integer 26

Break Time! bumfuzzle: "to confuse or fluster" Check out: https://canvas.cmu.edu/courses/3822 27

Today: Bits, Bytes, and Integers Representing information as bits Bit-level manipulations Integers Representation: unsigned and signed Conversion, casting Expanding, truncating Addition, negation, multiplication, shifting Summary Representations in memory, pointers, strings 28

Mapping Between Signed & Unsigned Two s Complement x T2B T2U X B2U Unsigned ux Maintain Same Bit Pattern Unsigned ux U2B U2T X B2T Two s Complement x Maintain Same Bit Pattern Mappings between unsigned and two s complement numbers: Keep bit representations and reinterpret 29

Mapping Signed Unsigned Carnegie Mellon Bits Signed Unsigned 0000 0 0 0001 1 1 0010 2 2 0011 3 3 0100 4 4 0101 0110 0111 5 6 7 T2U U2T 5 6 7 1000-8 8 1001-7 9 1010-6 10 1011-5 11 1100-4 12 1101-3 13 1110-2 14 1111-1 15 30

Mapping Signed Unsigned Carnegie Mellon Bits Signed Unsigned 0000 0 0 0001 1 1 0010 0011 0100 2 3 4 = 2 3 4 0101 5 5 0110 6 6 0111 7 7 1000-8 8 1001-7 9 1010 1011-6 -5 +/- 16 10 11 1100-4 12 1101-3 13 1110-2 14 1111-1 15 31

Relation between Signed & Unsigned Two s Complement x T2B T2U X B2U Unsigned ux Maintain Same Bit Pattern ux x w 1 0 + + + + + + - + + + + + Large negative weight becomes Large positive weight 32

Conversion Visualized 2 s Comp. Unsigned Ordering Inversion Negative Big Positive UMax UMax 1 TMax TMax + 1 TMax Unsigned Range 2 s Complement Range 0 1 2 0 TMin 33

Signed vs. Unsigned in C Constants By default are considered to be signed integers Unsigned if have U as suffix 0U, 4294967259U Casting Explicit casting between signed & unsigned same as U2T and T2U int tx, ty; unsigned ux, uy; tx = (int) ux; uy = (unsigned) ty; Implicit casting also occurs via assignments and procedure calls tx = ux; int fun(unsigned u); uy = ty; uy = fun(tx); 34

Casting Surprises Expression Evaluation If there is a mix of unsigned and signed in single expression, signed values implicitly cast to unsigned Including comparison operations <, >, ==, <=, >= Examples for W = 32: TMIN = -2,147,483,648, TMAX = 2,147,483,647 Constant 1 Constant 2 Relation Evaluation 0 0 0U == unsigned -1-1 0 < signed -1-1 0U > unsigned 2147483647 2147483647-2147483648 -2147483647-1 > signed 2147483647U 2147483647U -2147483648-2147483647-1 < unsigned -1-1 -2 > signed (unsigned)-1-1 -2 > unsigned 2147483647 2147483647 2147483648U < unsigned 2147483647 2147483647 (int) 2147483648U > signed 35

Unsigned vs. Signed: Easy to Make Mistakes unsigned i; for (i = cnt-2; i >= 0; i--) a[i] += a[i+1]; Can be very subtle #define DELTA sizeof(int) int i; for (i = CNT; i-delta >= 0; i-= DELTA)... 36

Summary Casting Signed Unsigned: Basic Rules Bit pattern is maintained But reinterpreted Can have unexpected effects: adding or subtracting 2 w Expression containing signed and unsigned int int is cast to unsigned!! 37

Today: Bits, Bytes, and Integers Representing information as bits Bit-level manipulations Integers Representation: unsigned and signed Conversion, casting Expanding, truncating Addition, negation, multiplication, shifting Summary Representations in memory, pointers, strings 38

Sign Extension Task: Given w-bit signed integer x Convert it to w+k-bit integer with same value Rule: Make k copies of sign bit: X = x w 1,, x w 1, x w 1, x w 2,, x 0 k copies of MSB X w X k w 39

Sign Extension: Simple Example Positive number Negative number -16 8 4 2 1-16 8 4 2 1 10 = 0 1 0 1 0-10 = 1 1 1 1 0 10 = -32 16 8 4 2 1 0 0 1 0 1 0-32 16 8 4 2 1-10 = 1 1 1 0 1 0 40

Larger 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 3B 6D 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 41

Truncation Task: Given k+w-bit signed or unsigned integer X Convert it to w-bit integer X with same value for small enough X Rule: Drop top k bits: X = x w 1, x w 2,, x 0 k w X X w 42

Truncation: Simple Example No sign change Sign change -16 8 4 2 1-16 8 4 2 1 2 = 0 0 0 1 0 10 = 0 1 0 1 0 2 = -8 4 2 1 0 0 1 0 2 mod 16 = 2-8 4 2 1-6 = 1 0 1 0 10 mod 16 = 10U mod 16 = 10U = -6-16 8 4 2 1-16 8 4 2 1-6 = 1 1 0 1 0-10 = 1 0 1 1 0-8 4 2 1-8 4 2 1-6 = 1 0 1 0 6 = 0 1 1 0-6 mod 16 = 26U mod 16 = 10U = -6-10 mod 16 = 22U mod 16 = 6U = 6 43

Summary: Expanding, Truncating: Basic Rules Expanding (e.g., short int to int) Unsigned: zeros added Signed: sign extension Both yield expected result Truncating (e.g., unsigned to unsigned short) Unsigned/signed: bits are truncated Result reinterpreted Unsigned: mod operation Signed: similar to mod For small numbers yields expected behavior 44

Fake real world example Acme, Inc. has developed a state of the art voltmeter they are connecting to a pc. It is precise to the millivolt and does not drain the unit under test. Your job is to develop the driver software. 1500 printf( %d\n, getvalue()); 45

Fake real world example Acme, Inc. has developed a state of the art voltmeter they are connecting to a pc. It is precise to the millivolt and does not drain the unit under test. Your job is to develop the driver software. wtf? 26076 printf( %d\n, getvalue()); 46

Lets run some tests printf( %d\n, getvalue()); 50652 0000c5dc 1500 000005dc 9692 000025dc 26076 000065dc 17884 000045dc 42460 0000a5dc 34268 000085dc 50652 0000c5dc 47

Lets run some tests int x=getvalue(); printf( %d %08x\n,x, x); 50652 0000c5dc 1500 000005dc 9692 000025dc 26076 000065dc 17884 000045dc 42460 0000a5dc 34268 000085dc 50652 0000c5dc Those darn engineers! 48

Only care about least significant 12 bits int x=getvalue(); x=(x & 0x0fff); printf( %d\n,x); 1500 49

Only care about least significant 12 bits int x=getvalue(); x=x(&0x0fff); printf( %d\n,x); hmm? a24 2596 printf( %x\n, x); 50

Must sign extend int x=getvalue(); x=(x&0x007ff) (x&0x0800?0xfffff000:0); printf( %d\n,x); -1500 There is a better way. 51

Because you graduated from 213 int x=getvalue(); x=(x&0x007ff) (x&0x0800?0xfffff000:0); printf( %d\n,x); huh? 0 52

Lets be really thorough int x=getvalue(); x=(x&0x00fff) (x&0x0800?0xfffff000:0); printf( %d\n,x); 53

Summary of Today: Bits, Bytes, and Integers Representing information as bits Bit-level manipulations Integers Representation: unsigned and signed Conversion, casting Expanding, truncating Addition, negation, multiplication, shifting Representations in memory, pointers, strings Summary 54