Introduction to Programming and the C Language

Slides:



Advertisements
Similar presentations
IT 325 OPERATING SYSTEM C programming language. Why use C instead of Java Intermediate-level language:  Low-level features like bit operations  High-level.
Advertisements

How to Convert Decimal Numbers to Binary EXAMPLES.
Copyright © 2000, Daniel W. Lewis. All Rights Reserved. CHAPTER 3 GETTING THE MOST OUT OF C.
Sort the given string, without using string handling functions.
Bit Manipulation. Binary Numbers Base 10 numbers are represented by sum of digits times powers of 10. For example: 234 = 2* * *10 0 Binary.
By Senem Kumova Metin 1 POINTERS + ARRAYS + STRINGS REVIEW.
 | bit OR & bit AND ~ bit NOT ^ bit EXLUSIVE OR (XOR) > bit RIGHT SHIFT.
Differences between Java and C CS-2303, C-Term Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.
Bitwise Structures Chapter 9: C programming Language ספטמבר 04
1 Lecture 3 Bit Operations Floating Point – 32 bits or 64 bits 1.
Assignment Operators =, +=, *= A += B means (A+B) --->A or A = (A+B) Similarly true for -=, *=, /=, and %=. The basic rule is from right to left. Never.
Introduction to Computing Systems (1st Exam). 1. [10] What is the range of decimal integers that can be represented by the following given numbers of.
Declarations/Data Types/Statements. Assignments Due – Homework 1 Reading – Chapter 2 – Lab 1 – due Monday.
Bit Operations C is well suited to system programming because it contains operators that can manipulate data at the bit level –Example: The Internet requires.
A bit can have one of two values: 0 or 1. The C language provides four operators that can be used to perform bitwise operations on the individual bits.
1 Bitwise Operators. 2 Bits and Constants 3 Bitwise Operators Bitwise "and" operator & Bitwise "or" operator | Bitwise "exclusive or" operator ^ Bitwise.
1 Bitwise Operators. 2 Bitwise Operators (integers) Bitwise "and" operator & Bitwise "or" operator | Bitwise "exclusive or" operator ^ Bitwise "ones complement"
Bitwise Operations CSE 2451 Rong Shi. Working with bits – int values Decimal (not a power of two – used for human readability) – No preceding label –
Binary numbers and arithmetic. ADDITION Addition (decimal)
1 CS 162 Introduction to Computer Science Chapter 5 ASCII to Integer Conversion Herbert G. Mayer, PSU Status 11/9/2014.
C Tokens Identifiers Keywords Constants Operators Special symbols.
Number System. Number Systems Important Number systems – Decimal – Binary – Hexadecimal.
CPS120: Introduction to Computer Science Computer Math: Converting to Decimal.
Bitwise operators. Representing integers We typically think in terms of decimal (base 10) numbers.  Why?  A decimal (or base 10) number consists of.
Lecture12. Outline Binary representation of integer numbers Operations on bits –The Bitwise AND Operator –The Bitwise Inclusive-OR Operator –The Bitwise.
Bitwise operators. Representing integers We typically think in terms of decimal (base 10) numbers.  Why?  A decimal (or base 10) number consists of.
Computer Organization and Assembly Language Bitwise Operators.
Special Cases of Factoring Chapter 5.5 Perfect Square Trinomials a 2 + 2ab + b 2 (a + b) 2 = a 2 – 2ab + b 2 (a – b) 2 =
Bitwise Operators Fall 2008 Dr. David A. Gaitros
Bit Operations Horton pp Why we need to work with bits Sometimes one bit is enough to store your data: say the gender of the student (e.g. 0.
Bit Manipulation. Get Bit from the particular Position Suppose you want to get a bit from the 4 th position. You can call int get_bit_val(int number_send,int.
Special Cases of Factoring Chapter Check to see if there is a GCF. 2. Write each term as a square. 3. Write those values that are squared as the.
Introduction to Computer Organization & Systems Topics: Command Line Bitwise operators COMP Spring 2014 C Part V.
DATA TYPE, MEMORY, AND FUNCTION Dong-Chul Kim BioMeCIS UTA 2/18/
Department of Electronic & Electrical Engineering Expressions operators operands precedence associativity types.
2/23/2016Course material created by D. Woit 1 CPS 393 Introduction to Unix and C START OF WEEK 9 (C-3)
Memory and the Character Display Chapter 10. The Bitwise Operators The bitwise operators are used to access the computer hardware. Use of bitwise operators.
Java Basics. Tokens: 1.Keywords int test12 = 10, i; int TEst12 = 20; Int keyword is used to declare integer variables All Key words are lower case java.
Department of Electronic & Electrical Engineering Lecture 3 IO reading and writing variables scanf printf format strings "%d %c %f" Expressions operators.
Chapter 8 Bit Operations By C. Shing ITEC Dept Radford University.
+ Note On the Use of Different Data Types Use the data type that conserves memory and still accomplishes the desired purpose. For example, depending on.
Lecturer: Santokh Singh
Programming in Machine Language
2.0 FUNDAMENTALS OF JAVA PROGRAMMING LANGUAGE
Sachin Malhotra Saurabh Choudhary
EPSII 59:006 Spring 2004.
Session #5 File I/O Bit Masks, Fields & Bit Manipulations
Bit Operations Horton pp
What to bring: iCard, pens/pencils (They provide the scratch paper)
Chapter 1 C for Embedded Systems.
Introduction to Programming
Chapter 1 C for Embedded Systems.
אבני היסוד של תוכנית ב- C
Andy Wang Object Oriented Programming in C++ COP 3330
Chapter 14 Bitwise Operators Objectives
Introduction to Programming
Bitwise Operators CS163 Fall 2018.
Embedded Programming in C
Conversion Check your class notes and given examples at class.
Binary Lesson 4 Hexadecimal and Binary Practice
Comp Org & Assembly Lang
Homework Finishing Chapter 2 of K&R. We will go through Chapter 3 very quickly. Not a lot is new. Questions?
Bitwise operators.
COMS 161 Introduction to Computing
Module 10 Operations on Bits
Bitwise Operators.
Bit Manipulations CS212.
Bit Operations Horton pp
ECE 120 Midterm 1 HKN Review Session.
Section 6 Primitive Data Types
Presentation transcript:

Introduction to Programming and the C Language Bit-wise operators and bit-wise operations Revital Hollander

מוטיבציה למה נרצה לעבוד עם ביטים? מוטיבציה למה נרצה לעבוד עם ביטים? עבודה עם ביטים הינה עבודה עם חלקים של משתנים (חלק מהביטים שלהם) כאשר נרצה דגל או מספר דגלים, נוכל להחזיק אותם במשתנה אחד, כאשר כל דגל ייוצג באחד מהביטים של המספר, במקום כל דגל במשתנה נפרד. החיסכון במקום יכול להיות גדול פעולות על ביטים הינן מהירות ניתן לבצע פעולות חשבון על ידי פעולות על ביטים ולא על ידי שימוש באופרטורים אריתמטיים

Bit-Wise Operators ~ not & and | or ^ xor >> shift right << shift left  

Operator ~ האופרטור הופך את כל הביטים של המשתנה ביט השווה ל-1 יהפוך ל-0 ולהיפך למשל: unsigned char x=90 הייצוג הבינארי של המשתנה הוא: x=01011010 ~x=10100101

Operator & האופרטור & מבצע של שני אופנדים x,y פעולת and על כל שני ביטים הנמצאים באותו המיקום למשל: unsigned char x=90, y=65 הייצוג הבינארי של המשתנים הוא: x=01011010 y=10100101 x&y= 00000000

Operator | האופרטור | מבצע של שני אופנדים x,y פעולת or על כל שני ביטים הנמצאים באותו המיקום למשל: unsigned char x=90, y=65 הייצוג הבינארי של המשתנים הוא: x= 01011010 y= 10100101 x|y = 11111111

פעולת XOR בהינתן שתי סיביות, האופרטור XOR שווה 1, אם X ו-Y שונים זה מזה ו-0 ,אחרת. להלן טבלת האמת של האופרטור XOR: X xor y y x 1

Operator ^ האופרטור ^ מבצע של שני אופנדים x,y פעולת xor על כל שני ביטים הנמצאים באותו המיקום למשל: unsigned char x=90, y=65 הייצוג הבינארי של המשתנים הוא: x=01011010 y=10100101 x^y=11111111

>> shift right operator האופרטור מזיז את כל הביטים של המשתנה n מקומות ימינה nביטים חדש יתווספו משמאל וערכם 0 על כל הזזה ימינה יחולק המספר ב-2 למשל: unsigned char x=90 הייצוג הבינארי של המשתנה הוא: x= 01011010 x>>1= 00101101 x>>2= 00010110 x>>3= 00001011

<< shift left operator האופרטור מזיז את כל הביטים של המשתנה n מקומות שמאלה nביטים חדש יתווספו מימין וערכם 0 על כל הזזה שמאלה יוכפל המספר ב-2 למשל: unsigned char x=90 הייצוג הבינארי של המשתנה הוא: x= 01011010 x<<1= 10110100 x<<2= 01101000 x<<3= 11010000

הדלקת ביט הדלקת ביט הינה הפיכת ביט ל-1. בדרך כלל, רוצים להדליק אחד הביטים של משתנה ורק אותו. ההדלקה נעשית על ידי שימוש "במסיכה". מסיכה הינו משתנה שכל הביטים שלו 0, פרט לביט אחד שערכו 1במיקום של הביט אותו רוצים לשנות. למשל: unsigned char x=90 x=01011010 x=x | 4 /* turn on the third bit */

דוגמא - בדיקת ביט void TestBit (unsigned char X, int Place) { X >>= Place; // x = x>> Place X &= 1; // x = x & 1 as x = x & 1 if (X) printf("1"); else printf("0"); } void main (void) { byte Num = 0x55; // הכנסת כל ערך הקסדצימלי דו ספרתי שתרצה לבדוק int i; for (i=7;i>=0;i--) TestBit(Num,i);

דוגמא – בדיקת ביט – הבדיקות TestBit(01010101,7) -> 00000000&00000001 //1st left bit is checked TestBit(01010101,6) -> 00000001&00000001 //2nd left bit is checked TestBit(01010101,5) -> 00000010&00000001 //3rd left bit is checked TestBit(01010101,4) -> 00000101&00000001 //4th lest bit is checked TestBit(01010101,3) -> 00001010&00000001 //5th left bit is checked TestBit(01010101,2) -> 00010101&00000001 //6th left bit is checked TestBit(01010101,1) -> 00101010&00000001 //7th left bit is checked TestBit(01010101,0) -> 01010101&00000001 //8th left bit is checked

Convert decimal number to binary number – a function that writes an integer to a string void binary(int num, char* st, int size) { int i, mask=1; for(i=size-2; i>=0; i--) if(num&mask) st[i]='1'; else st[i]='0'; mask<<=1; // move the mask one bit left st[size-1]=‘\0’; }

Convert decimal number to binary number –the program void main() { int num,size=sizeof(int)*8+1; char st[size]; printf("Enter an integer: "); scanf("%d", &num); binary(num,st,size); puts(st); }  

Convert decimal number to binary number - numeric example num =29 mask i st 0000000000011101 0000000000000001 31 st[31]="1“ 0000000000011101 0000000000000010 30 st[30]="0" 0000000000011101 0000000000000100 29 st[29]="1“ 0000000000011101 0000000000001000 28 st[28]="1“ 0000000000011101 0000000000010000 27 st[27]=“1“ 0000000000011101 0000000000100000 26 st[26]="0" . st[0]="0"