Module 1 CProgramming - Google Docs.pdf
Document Details
Uploaded by ProblemFreeClimax8270
Full Transcript
5. Maintenance We are maintenance the software by updating the information, providing the security and license for the software. What is C? isaprogramminglanguagedevelopedatAT&T‟sBellLaboratoriesofUSAin1972.It was C designed and written by ...
5. Maintenance We are maintenance the software by updating the information, providing the security and license for the software. What is C? isaprogramminglanguagedevelopedatAT&T‟sBellLaboratoriesofUSAin1972.It was C designed and written by Dennis Ritche. Dennis Ritchie is known as the founder of c language. It was developed to overcome the problems of previous languages such as B, BCPL etc.Initially, C language was developed to be usedin UNIX operating system. Features of C 1. Portability or machine independent C PROGRAMMING Page 16 2. Sound and versatile language 3. Fast program execution. 4. An extendible language. 5. Tends to be a structured language. istorical developments of C(Background) H Year Language Developed by Remarks 1960 ALGOL International committee Too general, too abstract 1967 BCPL artin Richards at M ould deal with only specific C Cambridge university problems 1970 B en Thompson at AT & K ould deal with only specific C T problems 1972 C Dennis Ritche at AT & T L ost generality of BCPL and B restored General Structure of a C program: /* Documentation section */ main() { Declaration part Executable part (statements) } The documentation section is used for displaying any information about the ⮚ programlikethepurposeoftheprogram,nameoftheauthor,dateandtimewritten etc, and this section should be enclosed within comment lines. The statements in the documentation section are ignored by the compiler. ⮚The link section consists of the inclusion of headerfiles. C PROGRAMMING Page 17 ⮚The definition section consists of macro definitions,defining constants etc,. Anything declared in the global declaration sectionis accessible throughout the ⮚ program, i.e. accessible to all the functions in the program. main() function is mandatory for any program andit includes two parts, the ⮚ declaration part and the executable part. The last section, i.e. sub-program section is optionaland used when we require ⮚ including user defined functions in the program. First C Program efore starting the abcd of C language, you need to learn how to write, compile and run the first B c program. To write the first c program, open the C console and write the following code: 1. #include 2. #include 3.voidmain(){ 4. printf("Hello C Language"); 5. getch(); 6. } # include includes thestandard input outputlibrary functions. The printf() function is defined in stdio.h. # include includes theconsole input outputlibrary functions. The getch() function is defined in conio.h file. v oid main()Themain() function is the entry pointof every programin c language. The void keyword specifies that it returns no value. printf()The printf() function isused to print dataon the console. g etch()The getch() functionasks for a single character.Until you press any key, it blocks the screen. C TOKENS:The smallest individual units are knownas tokens. C has six types of tokens. 1: Identifiers C PROGRAMMING Page 18 2: Keywords 3: Constants 4: Strings 5: Special Symbols 6: Operators Identifiers: I dentifiers refer to the names of variables, constants, functions and arrays. These are user-defined names is called Identifiers.These identifier aredefined against a set of rules. Rules for an Identifier 1. An Identifier can only have alphanumeric characters( a-z , A-Z , 0-9 ) and underscore( _ ). 2. The first character of an identifier can only contain alphabet( a-z , A-Z ) or underscore ( _ ). 3. Identifiers are also case sensitive in C. For examplenameandNameare two different identifier in C. 4. Keywords are not allowed to be used as Identifiers. 5. No special characters, such as semicolon, period, whitespaces, slash or comma are permitted to be used in or as Identifier. 6. C‟ compiler recognizes only the first 31 characters of an identifiers. Ex : Valid Invalid STDNAME Return SUB $stay TOT_MARKS 1RECORD _TEMP STD NAME. Y2K C PROGRAMMING Page 19 Keywords: Akeywordisareservedword. Allkeywordshavefixedmeaningthatmeanswe c annot change. Keywords serve as basic building blocks forprogramstatements.Allkeywords must be written in lowercase.Alist of 32 keywordsin c language is given below: auto break case char const continue default do double enum else extern float for goto if int long return register signed short static sizeof struct switch typedef union unsigned void volatile while Note:Keywords we cannot use it as a variable name,constant name etc. Data Types/Types: ∙ To store data the program must reserve space which is done using datatype. A datatypeisa k eyword/predefined instruction used for allocating memory for data. A data typespecifies the type of data that avariablecanstoresuchasinteger,floating,characteretc. Itusedfor declaring/defining variables or functions of different types before to use in a program. There are 4 types of data types in C language. C PROGRAMMING Page 20 Types Data Types Basic Data Type int, char, float, double Derived Data Type array, pointer, structure, union Enumeration Data Type enum Void Data Type void Note: We call Basic or Primary data type. hebasicdatatypesareinteger-basedandfloating-pointbased.Clanguagesupportsbothsigned T andunsignedliterals.Thememorysizeofbasicdatatypesmaychangeaccordingto32or64bit operating system. Let‟s see the basic data types. Its size is given according to 32 bit architecture. Size and Ranges of Data Types with Type Qualifiers Type Size (bytes) Range Control String char or signed char 1 -128 to 127 %c unsigned char 1 0 to 255 %c C PROGRAMMING Page 21 int or signed int 2 -32768 to 32767 %d or %i unsigned int 2 0 to 65535 %u s hort int or signed short 1 -128 to 127 %d or %i int unsigned short int 1 0 to 255 %d or %i long int or signed long 4 -2147483648 to 2147483647 %ld int unsigned long int 4 0 to 4294967295 %lu float 4 3.4E-38 to 3.4E+38 %f or %g double 8 1.7E-308 to 1.7E+308 %lf long double 10 3.4E-4932 to 1.1E+4932 %Lf Variables A variable isanameofmemorylocation.Itisusedtostoredata. Variablesarechangeable, we can change value of a variable during execution of a program. . It can be reused many times. Note:Variable are nothing but identifiers. ules to write variable names: R 1. A variable name contains maximum of 30 characters/ Variable name must be upto 8 characters. 2. A variable name includes alphabets and numbers, but it must start with an alphabet. 3. It cannot accept any special characters, blank spaces except under score( _ ). 4. It should not be a reserved word. Ex : i rank1 MAX min Student_name StudentName class_mark C PROGRAMMING Page 22 Declaration of Variables : A variable can be used to store a value of any data type.The d eclaration of variables must be done before they are used intheprogram.Thegeneralformat for declaring a variable. Syntax :data_type variable-1,variable-2,------, variable-n; Variables are separated by commas and declaration statement ends with a semicolon. Ex : int x,y,z; float a,b; char m,n; Assigning values to variables:values can be assigned to variables using the assignment operator (=). The general format statement is : Syntax: variable = constant; x : x=100; E a= 12.25; m=‟f‟; e can also assign a value to a variable at the time of the variable is declared. The general format w of declaring and assigning value to a variable is : Syntax :data_type variable = constant; x ; int x=100; E float a=12.25; char m=‟f‟; Types of Variables in C There are many types of variables in c: 1. local variable 2. global variable 3. static variable Constants Constantsreferto fixed values that do not changeduring the execution of a program. Note: constants are also called literals. C PROGRAMMING Page 23 supports several kinds of constants. C CONSTANTS Numeric Constants Character Constants Integer Constants Real Constants Single Character Constants String Constants TYPES OF C CONSTANT: 1. Integer constants 2. Real or Floating point constants 3. Character constants 4. String constants 5. Backslash character constants Integer constants: n integer constant is a numeric constant (associated with number) without any fractional or A exponential part. There are three types of integer constants in C programming: ∙decimal constant(base 10) ∙octal constant(base 8) ∙hexadecimal constant(base 16) For example: ∙Decimal constants: 0, -9, 22 etc ∙Octal constants: 021, 077, 033 etc ∙Hexadecimal constants: 0x7f, 0x2a, 0x521 etc ∙In C programming, octal constant starts with a 0and hexadecimal constant starts with a 0x. C PROGRAMMING Page 24 1: Decimal Integer:the rules for represent decimalinteger. a ) Decimal Integer value which consist of digits from 0-9. b) Decimal Integer value with base 10. c) Decimal Integer should not prefix with 0. d) It allows only sign (+,-). e) No special character allowed in this integer. Ex : valid invalid 7 $77 77 077 +77 7,777 -77 2 : Octal:An integer constants with base 8 is calledoctal. These rules are : a ) it consist of digits from 0 to 7. b) It should prefix with 0. c) It allows sign (+,-). d) No special character is allowed. EX : VALID INVALID 0123123->itbecausenoprefixwith0 +01230128->becausedigitsfrom0 to 7. -0123 3 : Hexadecimal :An integer constant with base value16 is called Hexadecimal. a) It consist of digits from 0-9,a-f(capital letters & small leters. x : 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 E b) it should prefix with 0X or 0x. c) it allows sign (+,-). d) No special character is allowed. EX :OX1a, ox2f Floating point/Real constants: floating point constant is a numeric constant that has either a fractional form or an exponent A form. For example: C PROGRAMMING Page 25 -2 .0 0.0000234 -0.22E-5 Note:E-5 = 10-5 eal Constants :Real constant is base 10 number,which is represented in decimal 0r R scientific/exponential notation. eal Notation :The real notation is represented byan integer followed by a decimal point and R the fractional(decimal) part. It is possible to omit digits before or after the decimal point. x : 15.25 E .75 30 -9.52 -92 +.94 Scientific/Exponential Notation:The general formof Scientific/Exponential notation is mantisha e exponent he mantisha is eitherareal/floatingpointnumberexpressedindecimalnotationoraninteger T and the exponent is an integer number with an optional sign. The character e separating the mantisha and the exponent can be written in either lowercase or uppercase. Ex : 1.5E-2 100e+3 -2.05e2 Character Constant: ingle Character Constant :A character constant iseither a single alphabet, a single digit, a S single special symbol enclosed within single inverted commas. a ) it is value represent in „ „ (single quote). b) The maximam length of a character constant can be 1 character. EX : VALID INVALID „a‟ “12” C PROGRAMMING Page 26 „ A‟ „ab‟ String constant :Astring constant is a sequenceof characters enclosed in double quote, the characters may be letters, numbers, special characters and blank space etc EX :“rama” , “a” , “+123” , “1-/a” "good" //string constant "" //null string constant " " //string constant of six white space "x" //string constant having single character. "Earth is round\n" //prints string with newline Escape characters or backslash characters: a ) \n newline b) \r carriage return c) \t tab d) \v vertical tab e) \b backspace f) \f form feed (page feed) g) \a alert (beep) h) \‟ single quote(„) i) \” double quote(“) j) \? Question mark (?) k) \\ backslash (\) Two ways to define constant in C There are two ways to define constant in C programming. 1. const keyword 2. #define preprocessor 3. 1) C const keyword The const keyword is used to define constant in C programming. 1.const floatPI=3.14; Now, the value of PI variable can't be changed. 1. #include 2. #include 3.voidmain(){ 4.const floatPI=3.14; 5. clrscr(); 6. printf("The value of PI is: %f",PI); C PROGRAMMING Page 27 7. getch(); 8. } Output: The value of PI is: 3.140000 2) C #define preprocessor The #define preprocessor is also used to define constant. #define C The #define preprocessor directive is used to define constant or micro substitution. It can use any basic data type. Syntax: #define token value Let's see an example of #define to define a constant. #include 1. #define PI 3.14 2. main() { 3. printf("%f",PI); 4. } Output: 3.140000 Formatted and Unformatted Console I/O Functions. Input/Output(I/O)Functions:In„C‟language,twotypesofInput/Outputfunctionsare a vailable, and all input and output operations are carried out through function calls. Several functions are available for input / output operations in „C‟. These functions are collectively known as the standard i/o library. Input:In any programming language input means tofeed some data into program. This can be given in the form of file or from command line. Output:In any programming language output means todisplay some data on screen, printer or in any file. The Standard Files Cprogrammingtreatsallthedevicesasfiles.Sodevicessuchasthedisplayareaddressedinthe s ame way as files and the following three files are automatically opened when a program executes to provide access to the keyboard and screen. Standard File File Pointer Device Standard input stdin Keyboard C PROGRAMMING Page 28 Standard output stdout Screen Standard error stderr Your screen Input / Output functions are classified into two types I / O Functions Formated I/O Functions Unformated I/O Functions I nput Output Output getc() putc() getchar() putchar()gets() puts() getch() scanf() print() fscanf() fprintf() getche() Input. Formated I/O Functions:formatted I/O functions operates on various types of data. 1 : printf() : output data or result of an operation can be d isplayed from the computer to a standard output device using the library function printf(). This function is used to print any combination of data. Syntax :printf(“control string “, variable1, variable2, -----------, variablen); Ex :printf(“%d”,3977); //Output: 3977 printf() statement another syntax : Syntax:printf(“fomating string”); Formating string:it prints all the character givenin doublequotes (“ “) except formatting specifier. C PROGRAMMING Page 29 Ex : printf(“ hello “);-> hello printf(“a”); -> a printf(“%d”, a); -> a value printf(“%d”); -> no display scanf() :input data can be entered into the computerusing the standard input „C‟ library function called scanf(). This function is used to enter any combination of input. Syntax :scanf(“control string “,&var1, &var2,----,&varn); The scanf() function is used to read information from the standard input device (keyboard). Ex : scanf(“ %d “,&a);-> hello ach variable name (argument) must be preceeded by an ampersand (&). The (&) symbol gives E the meaning “address of “ the variable. Unformatted I/O functions: a) Character I/O b) String I/O a) character I/O: . getchar(): Used to read a character from the standard input 1 2. putchar(): Used to display a character to standard output 3. getch() and getche(): these are used to take the any alpha numeric characters from the standard input getche() read and display the character getch() only read the single character but not display 4. putch(): Used to display any alpha numeric characters to standard outputa) String I/O: 1. gets(): Used for accepting any string from the standard input(stdin) eg:gets() . puts(): Used to display a string or character array Eg:puts() 3. 2 Cgets():read a string from the console eg; cgets(char *st) 4. Cputs():display the string to the console eg; cputs(char *st) PROGRAMMING Page 30 C PERATORS AND EXPRESSIONS: O Operators :An operator is a Symbol that performsan operation. An operators acts some variables are called operands to get the desired result. x : a+b; E Where a,b are operands and + is the operator. Types of Operator : 1) Arithmetic Operators. 2) Relational Operators. 3) Logical Operators. 4) Assignment Operators. 5). Unary Operators. 6) Conditional Operators. 7) Special Operators. 8) Bitwise Operators. 9) Shift Operators. Arithmetic Operators n arithmetic operator performs mathematical operations such as addition, subtraction and A multiplication on numerical values (constants and variables). C Program to demonstrate the working of arithmetic operators #include void main() { int a = 9,b = 4, c; c = a+b; printf("a+b = %d \n",c); c = a-b; printf("a-b = %d \n",c); c = a*b; printf("a*b = %d \n",c); c =a/b; printf("a/b = %d \n",c); c =a%b; printf("Remainder when a divided by b = %d \n",c); } C PROGRAMMING Page 31 utput O a+b = 13 a-b = 5 a*b = 36 a/b = 2 Remainder when a divided by b=1 Relational Operators.A relational operator checksthe relationship between two operands. If the relation is true, it returns 1; if the relation is false, it returns value 0. Operands may be variables, constants or expressions. Relational operators are used indecision makingandloops. Operator Meaning Example Return value 9 0 > = is greater than or equal 3 > = 2 1 to = = is equal to 2 = = 3 0 != is not equal to 2!=2 0 // C Program to demonstrate the working of relational operators #include int main() { int a = 5, b = 5, c = 10; printf("%d == %d = %d \n", a, b, a == b); // true printf("%d == %d = %d \n", a, c, a == c); // false printf("%d > %d = %d \n", a, b, a > b); //false printf("%d > %d = %d \n", a, c, a > c); //false C PROGRAMMING Page 32 printf("%d < %d = %d \n", a, b, a < b); //false printf("%d < %d = %d \n", a, c, a < c); //true printf("%d != %d = %d \n", a, b, a != b); //false printf("%d != %d = %d \n", a, c, a != c); //true printf("%d >= %d = %d \n", a, b, a >= b); //true printf("%d >= %d = %d \n", a, c, a >= c); //false printf("%d b) equals to %d \n", result); result = (a = b) && (c < b); printf("(a = b) && (c < b) equals to %d \n", result); result = (a = b) || (c < b); printf("(a = b) || (c < b) equals to %d \n", result); result = (a != b) || (c < b); printf("(a != b) || (c < b) equals to %d \n", result); result = !(a != b); printf("!(a == b) equals to %d \n", result); result = !(a == b); printf("!(a == b) equals to %d \n", result); return 0; } Output (a = b) && (c > b) equals to 1 (a = b) && (c < b) equals to 0 (a = b) || (c < b) equals to 1 C PROGRAMMING Page 35 (a != b) || (c < b) equals to 0 !(a != b) equals to 1 !(a == b) equals to 0 Assignment Operators.Assignment operators are usedto assign a value (or) an expression (or) a value of a variable to another variable. Syntax :variable name=expression (or) value (or)variable x : x=10; E y=a+b; z=p; Compound assignment operator: „ C‟ provides compound assignment operators to assign a value to variable in order to assign a new value to a variable after performing a specified operation. Operator Example Meaning + = x + = y x=x+y - = x - = y x=x-y * = x * = y x=x*y / = x / = y x=x/y % = x % = y X=x%y // C Program to demonstrate the working of assignment operators #include int main() { int a = 5, c; c = a; C PROGRAMMING Page 36 printf("c = %d \n", c); c += a; // c = c+a printf("c = %d \n", c); c -= a; // c = c-a printf("c = %d \n", c); c *= a; // c = c*a printf("c = %d \n", c); c /= a; // c = c/a printf("c = %d \n", c); c %= a; // c = c%a printf("c = %d \n", c); return 0; } Output c = 5 c = 10 c = 5 c = 25 c = 5 c = 0 Increment and Decrement Operators /Unary Operators: C PROGRAMMING Page 37 nary operators are having higher priority than the other operators.Unary operators, meaning U they only operate on a single operand. Increment Operator in C Programming 1. Increment operator is used to increment the current value of variable by adding integer 1. 2. Increment operator can be applied to only variables. 3. Increment operator is denoted by ++. We have two types of increment operator i.e Pre-Increment and Post-Increment Operator. Pre-Increment re-increment operator is used to increment the value of variable before using in the expression. In P the Pre-Increment value is first incremented and then used inside the expression. b = ++y; I n this example suppose the value of variable „y‟ is 5 then value of variable „b‟ will be 6 because the value of „y‟ gets modified before using it in a expression. Post-Increment ost-increment operator is used to increment the value of variable as soon as after executing P expressioncompletelyinwhichpostincrementisused.InthePost-Incrementvalueisfirstused in a expression and then incremented. b = x++; I n this example suppose the value of variable „x‟ is 5 then value of variable „b‟ will be 5 because old value of „x‟ is used. Note : ecannotuseincrementoperatorontheconstantvaluesbecauseincrementoperatoroperateson W onlyvariables.Itincrementsthevalueofthevariableby1andstorestheincrementedvalueback to the variable C PROGRAMMING Page 38 b = ++5; or b = 5++; Thesyntaxof the operators is given below. + -- + ++ -- The operator ++ adds 1 to the operand and – subtracts 1 from the operand. These operators in two forms : prefix (++x) and postfix(x++). Operator Meaning ++x Pre increment - -x Pre decrement x++ Post increment x-- Post decrement here W 1 : ++x : Pre increment, first increment and then do the operation. 2 : - -x : Pre decrement, first decrements and then do the operation. 3 : x++ : Post increment, first do the operation and then increment. 4 : x- - : Post decrement, first do the operation and then decrement. // C Program to demonstrate the working of increment and decrement operators #include int main() { int a = 10, b = 100; float c = 10.5, d = 100.5; printf("++a = %d \n", ++a); printf("--b = %d \n", --b); printf("++c = %f \n", ++c); printf("--d = %f \n", --d); return 0; } utput O ++a = 11 --b = 99 ++c = 11.500000 ++d = 99.500000 C PROGRAMMING Page 39 Multiple increment operators inside printf # include voidmain() { inti = 1; printf("%d %d %d", i, ++i, i++); } Output : 3 3 1 Pictorial representation Explanation of program I am sure you will get confused after viewing the above image and output of program.1. Whenever more than one format specifiers (i.e %d) are directly or indirectly related with s ame variable (i,i++,++i) then we need to evaluate each individual expression from right to left. 2.As shown in the above image evaluation sequenceof expressions written inside printf will be – i++,++i,i 3.After execution we need to replace the output ofexpression at appropriate place No Step Explanation 1 valuate E At the time of execution we will be using older value of i = 1 i++ 2 valuate E t the time of execution we will be increment value already modified A ++i after step 1 i.e i = 3 2 Evaluate i At the time of execution we will be using value of i modified in step 2 C PROGRAMMING Page 40 ostfix and Prefix Expression in Same Statement P #include #include void main() { int i = 0, j = 0; j = i++ + ++i; printf("%d\n", i); printf("%d\n", j); } Output : 2 2 Explanation of Program Conditional Operator/ Ternary operator: c onditional operator checks the condition and executes the statement depending of the condition. A conditional operator is a ternary operator, that is, it works on 3 operands. Conditional operator consist of two symbols. 1 : question mark (?). 2 : colon ( : ). C PROGRAMMING Page 41 Syntax: condition ? exp1 : exp2; It first evaluate the condition, if it is true (non-zero) then the “exp1” is evaluated, if the condition is false (zero) then the “exp2” is evaluated. # include int main(){ char February; int days; printf("If this year is leap year, enter 1. If not enter any integer: "); scanf("%c",&February); // If test condition (February == 'l') is true, days equal to 29. // If test condition (February =='l') is false, days equal to 28. days = (February == '1') ? 29 : 28; printf("Number of days in February = %d",days); return 0; } Output I f this year is leap year, enter 1. If not enter any integer: 1 Number of days in February = 29 Bitwise Operators: itwise operators are used to manipulate the data at bit level. It operates onintegersonly.It B may not be applied to float.In arithmetic-logic unit (which is within the CPU), mathematical perations like: addition, subtraction, multiplication and division are done in bit-level which o makes processing faster and saves power. To perform bit-level operations inCprogramming, bitwise operators are used. Operator Meaning & Bitwise AND | Bitwise OR ^ Bitwise XOR < > Shift right ~ One‟s complement. Bitwise AND operator & he output of bitwise AND is 1 if the corresponding bits of two operands is 1. If either bit of an T operand is 0, the result of corresponding bit is evaluated to 0. et us suppose the bitwise AND operation of two integers 12 and 25. L 12 = 00001100 (In Binary) 25 = 00011001 (In Binary) C PROGRAMMING Page 42 Bit Operation of 12 and 25 00001100 & 00011001 ________ 00001000 = 8 (In decimal) Example #1: Bitwise AND # include int main() { int a = 12, b = 25; printf("Output = %d", a&b); return 0; } Output Output =8 Bitwise OR operator | he output of bitwise OR is 1 if at least one corresponding bit of two operands is 1. In C T Programming, bitwise OR operator is denoted by |. 12 = 00001100 (In Binary) 25 = 00011001 (In Binary) Bitwise OR Operation of 12 and 25 00001100 | 00011001 ________ 00011101 = 29 (In decimal) Example #2: Bitwise OR #include int main() { int a = 12, b = 25; printf("Output = %d", a|b); return 0; C PROGRAMMING Page 43 } Output Output =29 Bitwise XOR (exclusive OR) operator ^ he result of bitwise XOR operator is 1 if the corresponding bits of two operands are opposite. It T is denoted by ^. 12 = 00001100 (In Binary) 25 = 00011001 (In Binary) Bitwise XOR Operation of 12 and 25 00001100 | 00011001 ________ 00010101 = 21 (In decimal) Example #3: Bitwise XOR #include int main() { int a = 12, b = 25; printf("Output = %d", a^b); return 0; } Output Output = 21 Bitwise complement operator ~ itwise compliment operator is an unary operator (works on only one operand). It changes 1 to 0 B and 0 to 1. It is denoted by ~. 35 = 00100011 (In Binary) Bitwise complement Operation of 35 C PROGRAMMING Page 44 ~ 00100011 ________ 11011100 = 220 (In decimal) Twist in bitwise complement operator in C Programming The bitwise complement of 35 (~35) is -36 instead of 220, but why? or any integern, bitwise complement ofnwill be-(n+1). To understand this, you should have F the knowledge of 2's complement. 2's Complement wo's complement is an operation on binary numbers. The 2's complement of a number is equal T to the complement of that number plus 1. For example: Decimal Binary 2's complement 0 00000000 -(11111111+1) = -00000000 = -0(decimal) 1 00000001 -(11111110+1) = -11111111 = -256(decimal) 12 00001100 -(11110011+1) = -11110100 = -244(decimal) 220 11011100 -(00100011+1) = -00100100 = -36(decimal) Note: Overflow is ignored while computing 2's complement. he bitwise complement of 35 is 220 (in decimal). The 2's complement of 220 is -36. Hence, the T output is -36 instead of 220. Bitwise complement of any number N is -(N+1). Here's how: bitwise complement of N = ~N (represented in 2's complement form) 2'complement of ~N= -(~(~N)+1) = -(N+1) Example #4: Bitwise complement #include C PROGRAMMING Page 45 int main() { printf("complement = %d\n",~35); printf("complement = %d\n",~-12); return 0; } Output Complement = -36 Complement = 11 There are two Bitwise shift operators in C programming: ∙Right shift operator ∙Left shift operator. Right Shift Operator ight shift operator shifts all bits towards right by certain number of specified bits. It is denoted R by >>. Left Shift Operator eft shift operator shifts all bits towards left by certain number of specified bits. It is denoted by L = Relational Operator 6 L-R (left to right) = = quality E 7 L-R (left to right) != Inequality & Bitwise AND 8 L-R (left to right) ^ Bitwise XOR 9 L-R (left to right) | Bitwise OR 10 L-R (left to right) && Logical AND 11 L-R (left to right) | | Logical OR 12 L-R (left to right) ?: Conditional 13 R-L (right to left) *= /= %= Assignment operator = 14 R-L (right to left) += -= &= ^= = , Comma operator 15 L-R (left to right) Type Conversion/Type casting: ype conversion is used to convert variable from one data type to another data type, and after T type casting complier treats the variable as of new data type. For example, if you want to store a 'long' value into a simple integer then you can type cast 'long' to 'int'. You can convert the values from one type to another explicitly using thecast operator.Type conversions can be implicit which isperformed by the compiler automatically, or it can be specified explicitly through the use of the cast operator. yntax: S (type_name) expression; Without Type Casting: 1.intf= 9/4; 2. printf("f : %d\n", f );//Output: 2 With Type Casting: 1.floatf=(float) 9/4; 2. printf("f : %f\n", f );//Output: 2.250000 Example: #include int main() C PROGRAMMING Page 50 { printf( "%c\n", (char)65 ); getchar(); } or Type Casting - C Programming ype casting refers to changing an variable of one data type into another. The compiler will T automaticallychangeonetypeofdataintoanotherifitmakessense.Forinstance,ifyouassign an integer valuetoafloating-pointvariable,thecompilerwillconverttheinttoafloat.Casting allows you to make this type conversion explicit, or to force it when it wouldn‟t normally happen. Type conversion in c can be classified into the following two types: 1.Implicit Type Conversion When the type conversion is performed automatically by the compiler without programmers intervention, such type of conversion is known as implicit type conversion or type promotion. int x; for(x=97; x