 Lecture 3 Basic Data Types. Overview  The basic data types that C uses: int, short, long, unsigned, char, float, double  Operator: sizeof()  Function:

Slides:



Advertisements
Similar presentations
CS0007: Introduction to Computer Programming Console Output, Variables, Literals, and Introduction to Type.
Advertisements

Principles of Programming Fundamental of C Programming Language and Basic Input/Output Function 1.
Primitive Data Types There are a number of common objects we encounter and are treated specially by almost any programming language These are called basic.
Data Types in Java Data is the information that a program has to work with. Data is of different types. The type of a piece of data tells Java what can.
Types and Variables. Computer Programming 2 C++ in one page!
Bellevue University CIS 205: Introduction to Programming Using C++ Lecture 3: Primitive Data Types.
Assembly Language and Computer Architecture Using C++ and Java
1 Fundamental Data Types. 2 Declaration All variables must be declared before being used. –Tells the compiler to set aside an appropriate amount of space.
Assembly Language and Computer Architecture Using C++ and Java
Chapter 9 Formatted Input/Output Acknowledgment The notes are adapted from those provided by Deitel & Associates, Inc. and Pearson Education Inc.
ECE122 L3: Expression Evaluation February 6, 2007 ECE 122 Engineering Problem Solving with Java Lecture 3 Expression Evaluation and Program Interaction.
CS1061 C Programming Lecture 4: Indentifiers and Integers A.O’Riordan, 2004.
Data types and variables
Chapter 2 Data Types, Declarations, and Displays
1 Agenda Variables (Review) Example Input / Output Arithmetic Operations Casting Char as a Number (if time allow)
Chapter 3: Introduction to C Programming Language C development environment A simple program example Characters and tokens Structure of a C program –comment.
 2007 Pearson Education, Inc. All rights reserved C Formatted Input/Output.
Programming Variables. Named area in the computer memory, intended to contain values of a certain kind (integers, real numbers, characters etc.) They.
Objectives You should be able to describe: Data Types
Simple Data Type Representation and conversion of numbers
C Programming Lecture 3. The Three Stages of Compiling a Program b The preprocessor is invoked The source code is modified b The compiler itself is invoked.
Information Representation (Level ISA3) Floating point numbers.
Chapter 9 Formatted Input/Output. Objectives In this chapter, you will learn: –To understand input and output streams. –To be able to use all print formatting.
A Variable is symbolic name that can be given different values. Variables are stored in particular places in the computer ‘s memory. When a variable is.
IT253: Computer Organization
Yu Yuanming CSCI2100B Data Structures Tutorial 3
Data Representation.
Number Systems Spring Semester 2013Programming and Data Structure1.
C Tokens Identifiers Keywords Constants Operators Special symbols.
Data Representation in Computer Systems
CS1 Lesson 2 Introduction to C++ CS1 Lesson 2 -- John Cole1.
Chapter 3 Processing and Interactive Input. 2 Assignment  The general syntax for an assignment statement is variable = operand; The operand to the right.
CNG 140 C Programming Lecture Notes 2 Processing and Interactive Input Spring 2007.
A First Book of ANSI C Fourth Edition Chapter 3 Processing and Interactive Input.
Representing numbers and Basic MATLAB 1. Representing numbers  numbers used by computers do not behave the same as numbers used in mathematics  e.g.,
1 EENG 2710 Chapter 1 Number Systems and Codes. 2 Chapter 1 Homework 1.1c, 1.2c, 1.3c, 1.4e, 1.5e, 1.6c, 1.7e, 1.8a, 1.9a, 1.10b, 1.13a, 1.19.
CSC 221 Computer Organization and Assembly Language
UniMAP Sem1-07/08EKT120: Computer Programming1 Week2.
Lecture #5 Introduction to C++
Constants Numeric Constants Integer Constants Floating Point Constants Character Constants Expressions Arithmetic Operators Assignment Operators Relational.
Characters and tokens Characters are the basic building blocks in C program, equivalent to ‘letters’ in English language Includes every printable character.
Introduction to Programming
CONSTANTS Constants are also known as literals in C. Constants are quantities whose values do not change during program execution. There are two types.
1 COMS 261 Computer Science I Title: C++ Fundamentals Date: September 9, 2005 Lecture Number: 6.
Introducing constants, variables and data types March 31.
Programming in Java (COP 2250) Lecture 4 Chengyong Yang Fall, 2005.
Chapter 7 C supports two fundamentally different kinds of numeric types: (a) integer types - whole numbers (1) signed (2) unsigned (b) floating types –
Programming Fundamentals. Overview of Previous Lecture Phases of C++ Environment Program statement Vs Preprocessor directive Whitespaces Comments.
Programming Fundamentals. Summary of previous lectures Programming Language Phases of C++ Environment Variables and Data Types.
Module B - Computation1/61 Module-B-Computation Variables Basic Memory Operations Expressions.
Tokens in C  Keywords  These are reserved words of the C language. For example int, float, if, else, for, while etc.  Identifiers  An Identifier is.
Types Chapter 2. C++ An Introduction to Computing, 3rd ed. 2 Objectives Observe types provided by C++ Literals of these types Explain syntax rules for.
23 March 2012 Basic Data Types. We will learn about the following: Keywords: int, short, long, unsigned, char, float, double Operator: sizeof Function:
Sudeshna Sarkar, IIT Kharagpur 1 Programming and Data Structure Sudeshna Sarkar Lecture 3.
Announcements Assignment 2 Out Today Quiz today - so I need to shut up at 4:25 1.
7. BASIC TYPES. Systems of numeration Numeric Types C’s basic types include integer types and floating types. Integer types can be either signed or unsigned.
CS0007: Introduction to Computer Programming Primitive Data Types and Arithmetic Operations.
Chapter 1 slides1 What is C? A high-level language that is extremely useful for engineering computations. A computer language that has endured for almost.
Number Systems. The position of each digit in a weighted number system is assigned a weight based on the base or radix of the system. The radix of decimal.
Binary Numbers The arithmetic used by computers differs in some ways from that used by people. Computers perform operations on numbers with finite and.
© 2004 Pearson Addison-Wesley. All rights reserved August 27, 2007 Primitive Data Types ComS 207: Programming I (in Java) Iowa State University, FALL 2007.
Primitive Data Types August 28, 2006 ComS 207: Programming I (in Java)
EPSII 59:006 Spring 2004.
Data Structures Mohammed Thajeel To the second year students
Fundamental Data Types
Variables In programming, we often need to have places to store data. These receptacles are called variables. They are called that because they can change.
INPUT & OUTPUT scanf & printf.
A First Book of ANSI C Fourth Edition
Fundamental Data Types
DATA TYPES There are four basic data types associated with variables:
Presentation transcript:

 Lecture 3 Basic Data Types

Overview  The basic data types that C uses: int, short, long, unsigned, char, float, double  Operator: sizeof()  Function: scanf()  The distinctions between integer types and floating-point types  How to use the printf() and scanf() functions to read and write values of different types

A Simple program To provide keyboard input to the program, use the scanf() function. The %f instructs scanf() to read a integer number from the keyboard, and the &weight tells scanf() to assign the input value to the variable named weight. Use the.2 modifier to the %f specifier to fine-tune the appearance of the output so that it displays two places to the right of the decimal.

Interactive program  The interactive approach makes programs more flexible;  The sample program can be used for any reasonable weight;  The scanf() and printf() functions make this interactivity possible.

Warnings A warning, means you've done something that is valid code but possibly is not what you meant to do. A warning does not stop compilation.

Errors An error message means you did something wrong. It prevents the program from being compiled. For the other two types of errors see previous lecture!

Data Variables and Constants  Some types of data are preset before a program is used and keep their values unchanged throughout the life of the program. These are constants.  Other types of data may change or be assigned values as the program runs; these are variables.  In the sample program, weight is a variable and is a constant.  What about 1000?  The price of gold isn't a constant in real life, but this program treats it as a constant.

Constants Define a macro constant

Constants

Bits, Bytes, and Words  The terms bit, byte, and word can be used to describe units of computer data or to describe units of computer memory. We'll concentrate on the second usage here.  The smallest unit of memory is called a bit. It can hold one of two values: 0 or 1. (Or you can say that the bit is set to "off" or "on.")  The byte is the usual unit of computer memory. For nearly all machines, a byte is 8 bits, and that is the standard definition, at least when used to measure storage.  A word is the natural unit of memory for a given computer design

Constants  Entities that appear in the program code as fixed values.  Any attempt to modify a CONSTANT will result in error.  4 types of constants: 1. Integer constants  Positive or negative whole numbers with no fractional part  Example:  const int MAX_NUM = 10;  const int MIN_NUM = -90; 2. Floating-point constants (float or double)  Positive or negative decimal numbers with an integer part, a decimal point and a fractional part  Example:  const double VAL = e2; (stands for x 10 2 )

Constant 3. Character constants  A character enclosed in a single quotation mark  Example:  const char letter = ‘n’;  const char number = ‘1’;  printf(“%c”, ‘S’);  Output would be: S 4. Enumeration  Values are given as a list  Example:

Basic Data Types  There are 4 basic data types :  int  float  double  char 1. int  used to declare numeric program variables of integer type  whole numbers, positive and negative  keyword: int int number; number = 12; -32,768 ~ 32,767 ( 16bit machine)

Basic Data Types 2. float  fractional parts, positive and negative  keyword: float float height; height = 1.72; 3. double  used to declare floating point variable of higher precision or higher range of numbers  exponential numbers, positive and negative  keyword: double double valuebig; valuebig = 12E-3; 3.4e-38 ~ 3.4e38 ( 16bit machine) 1.7e-308 ~ 1.7e308 ( 16bit machine)

Basic Data Types 4. char  equivalent to ‘letters’ in English language  Example of characters:  Numeric digits:  Lowercase/uppercase letters: a - z and A - Z  Space (blank)  Special characters:,. ; ? “ / ( ) [ ] { } * & % ^ etc  single character  keyword: char char my_letter; my_letter = 'U’; The declared character must be enclosed within a single quote! -128 ~ 127( 16bit machine)

Difference between integer and floating- point numbers  An integer has no fractional part; a floating-point number can have a fractional part.  Floating-point numbers can represent a much larger range of values than integers can.  For some arithmetic operations, such as subtracting one large number from another, floating-point numbers are subject to greater loss of precision.  Floating-point values are often approximations of a true value.  Floating-point operations are normally slower than integer operations.

Primary data types in C

Floating point representation float

Double precision representation double C allows for a third floating-point type: long double. The intent is to provide for even more precision than double. However, C guarantees only that long double is at least as precise as double.

Hierarchy of Integer Types  C offers three adjective keywords to modify the basic integer type: short, long, and unsigned.  The type short int or, more briefly, short may use less storage than int, thus saving space when only small numbers are needed. Like int, short is a signed type.  The type long long int, may use more storage than long, thus enabling you to express even larger integer values. Like int, long long is a signed type.  The type unsigned int, or unsigned, is used for variables that have only nonnegative values. For example, a 16-bit unsigned int allows a range from 0 to in value instead of from –32768 to

Why Multiple Integer Types?  The idea is to fit the types to the machine.  The most common practice today is to set up long long as 64 bits, long as 32 bits, short as 16 bits, and int to either 16 bits or 32 bits, depending on the machine's natural word size.  The minimum range for both short and int is –32,767 to 32,767, corresponding to a 16-bit unit, and the minimum range for long is –2,147,483,647 to 2,147,483,647, corresponding to a 32-bit unit.

long Constants and long long Constants  When you use a number such as 2345 in your program code, it is stored as an int type. What if you use a number such as on a system in which int will not hold such a large number? Then the compiler treats it as a long int, assuming that type is large enough. If the number is larger than the long maximum, C treats it as unsigned long. If that is still insufficient, C treats the value as long long or unsigned long long, if those types are available.  Octal and hexadecimal constants are treated as type int unless the value is too large. Then the compiler tries unsigned int. If that doesn't work, it tries, in order, long, unsigned long, long long, and unsigned long long.

When do you use the various int types?  First, consider unsigned types. It is natural to use them for counting because you don't need negative numbers, and the unsigned types enable you to reach higher positive numbers than the signed types.  Use the long type if you need to use numbers that long can handle and that int cannot.  Similarly, use long long if you need 64-bit integer values.

Integer Overflow The unsigned integer j is acting like a car's odometer. When it reaches its maximum value, it starts over at the beginning. The integer i acts similarly. The main difference is that the unsigned int variable j, like an odometer, begins at 0, but the int variable i begins at –

Octal and Hexadecimal  C assumes that integer constants are decimal, or base 10, numbers.  Octal (base 8) and hexadecimal (base 16) numbers are popular with many programmers. Because 8 and 16 are powers of 2, and 10 is not, these number systems occasionally offer a more convenient way for expressing computer-related values. HexadecimalDecimalBinary  When dealing with a large number of bits, it is more convenient and less error-prone to write the binary numbers in hex or octal. VS

Displaying Octal and Hexadecimal  To display an integer in octal notation instead of decimal, use %o instead of %d.  To display an integer in hexadecimal, use %x.  If you want to display the C prefixes, you can use specifiers %#o, %#x, and %#X to generate the 0, 0x, and 0X prefixes, respectively dec = 100; octal = 144; hex = 64 dec = 100; octal = 0144; hex = 0x64

Printing short, long, long long, and unsigned Types  To print an unsigned int number, use the %u notation. To print a long value, use the %ld format specifier. %hd displays a short integer in decimal form, and %ho displays a short integer in octal form. Both the h and l prefixes can be used with u for unsigned types.

Printing short, long, long long, and unsigned types The third line of output illustrates this point. When the value is written in binary format as a 32-bit number, it looks like Using the %hd specifier persuaded printf() to look at just the last 16 bits; therefore, it displayed the value as 1 First, note that using the %d specifier for the unsigned variable produces a negative number! The reason for this is that the unsigned value and the signed value – have exactly the same internal representation in memory on our system.

Using Characters: Type char, Constants and Initialization character declaration: character initialization: A single letter contained between single quotes is a C character constant. If you omit the quotes, the compiler thinks that T is the name of a variable.

The scanf function  Read data from the standard input device (usually keyboard) and store it in a variable.  General format:  scanf(“%d”, &variable);  Notice ampersand (&) operator :  C address of operator  it passes the address of the variable instead of the variable itself  tells the scanf() where to find the variable to store the new value 0x1240x1280x12C0x130 address : &variable  0x128 4 bytes or other specifiers depending on the variable type memory :

The scanf function  If you want the user to enter more than one value, you serialize the inputs. Common Conversion Identifier used in printf() and scanf() functions. printfscanf int%d float%f double%f%lf char%c string%s  You can serialize input

Nonprinting Characters  The single-quote technique is fine for characters, digits, and punctuation marks.  Some of the characters are nonprinting.  For example, some represent actions such as backspacing or going to the next line or making the terminal bell ring (or speaker beep)  There are two ways to define such variables. 1. Use reserved sequences 2. Use numeric codes form the character table (ASCII codes) Example :

Partial listing of ASCII code

Printing Characters

The showf_pt.c Program The printf() function uses the %f format specifier to print type float and double numbers using decimal notation, and it uses %e to print them in exponential notation To correctly print out dip use %LF and %LE Then the output will be

Floating-Point Overflow and Underflow  Suppose the biggest possible float value on your system is about 3.4E38 and you do this This is an example of overflow —when a calculation leads to a number too large to be expressed. The behavior for this case used to be undefined, but now C specifies that toobig gets assigned a special value that stands for infinity and that printf() displays either inf or infinity (or some variation on that theme) for the value.

Floating-Point Round-off Errors  Take a number, add 1 to it, and subtract the original number. What do you get? You get 1. A floating-point calculation, such as the following, may give another answer:  older gcc on Linux  Turbo C  clang on Mac OS, MSVC++

Type Sizes

The typesize.c program  The sizeof operator gives the amount of storage, in bytes, required to store an object of the type of the operand.  This operator allows you to avoid specifying machine-dependent data sizes in your programs.

Number systems  Decimal  Binary  Octal  Hexadecimal

Octal number system  The octal number system has a base of eight. It has eight possible digits: 0,1,2,3,4,5,6,7.  The digit positions in an octal number have weights as follows:

Octal-to-Decimal Conversion  An octal number can be converted to its decimal equivalent by multiplying each octal digit by its position weight

Decimal-to-Octal Conversion  A decimal integer can be converted to octal by using the same repeated-division method, but with a division factor of 8 instead of

Octal-to-Binary Conversion  The advantage of the octal number system is the ease with which conversion can be made between binary and octal numbers. Ex. 1Ex. 2

Binary-to-Octal Conversion  Converting from binary integers to octal integers is simply the revers of the foregoing process. The bits of the binary number are grouped into groups of three bits started at the LSB. 0 Ex. 1 Ex. 2

Example  Convert to eight-bit binary equivalent by first converting to octal Thus, = It binary equivalent is

Hexadecimal number system  The hexadecimal number system used base 16.  It used the digits 0 through 9 plus A,B,C,D,E and F. HexadecimalDecimalBinary

Hex-to-Decimal Conversion  A hex number can be converted to its decimal equivalent by using the fact that each hex digit position has a weight that is a power of 16. Ex. 1 Ex. 2

Decimal-to-Hex Conversion  Decimal-to-hex conversion can be done using repeated division by 16. Convert to hexConvert to hex 1A7 16 D6 16

Hex-to-Binary Conversion  The hexadecimal number system is used primarily as a “shorthand” method for representing binary numbers.

Binary-to-Hex Conversion  The binary number is grouped into groups of for bits, and each group is converted to its equivalent hex digit. 00

Counting in Hexadecimal  When counting in hex, each digit position can be incremented (increased by 1) for 0 to F. Once a digit position reaches the value F, it is reset to 0, and the next digit position is incremented.  With N hex digit positions we count from decimal 0 to 16 N – 1, for a total of 16 N different values.

Usefulness of Hex and Octal  When dealing with a large number of bits, it is more convenient and less error-prone to write the binary numbers in hex or octal. VS

Example  Convert decimal 378 to a 16-bit binary number by first converting to hexadecimal Thus, = 17A 16.

Example  Convert B2F 16 to octal.