![Page 1: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/1.jpg)
C Programming 1✬
✫
✩
✪
Basic Assignment and Arithmetic Operators
Lect 4 Goutam Biswas
![Page 2: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/2.jpg)
C Programming 2✬
✫
✩
✪
Assignment Operator ‘=’
✛
✚
✘
✙int count ;
count = 10 ;
• The first line declares the variable count.
• In the second line an assignment operator
(=) is used to store 10 in the location of
count.
Lect 4 Goutam Biswas
![Page 3: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/3.jpg)
C Programming 3✬
✫
✩
✪
• In C language ‘count = 10’ is called an
expression (with side effect) where ‘=’ is
called the assignment operator (not
equality).
• Value of the expression is 10.
• The semicolon ‘;’ converts the expression to
a statement.
Lect 4 Goutam Biswas
![Page 4: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/4.jpg)
C Programming 4✬
✫
✩
✪
Next statement -✞✝ ☎✆count = 2*count + 5;
• In this statement the variable count is used
on two sides of the assignment operator.
There are two constants 2 and 5, and three
operators ‘=’ (assignment), ‘∗’
(multiplication) and ‘+’ (addition).
• count = 2*count + 5 is an expression
(excluding the semicolon).
Lect 4 Goutam Biswas
![Page 5: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/5.jpg)
C Programming 5✬
✫
✩
✪
The informal semantics (action, meaning) of
the previous expression is the following:
• The content (r-value) of count is multiplied
by 2, then 5 is added to the result
(10× 2 + 5 is 25).
• The final value 25 is stored in the location
(l-value) of count.
• The value of the expression is 25.
Lect 4 Goutam Biswas
![Page 6: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/6.jpg)
C Programming 6✬
✫
✩
✪
count int
int count;
count = 10 ;
count
count = 2*count + 5;
count
10
25
garbage
Lect 4 Goutam Biswas
![Page 7: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/7.jpg)
C Programming 7✬
✫
✩
✪
Assignment from One Type to Another
• A float data can be assigned to an int
variable, but there may be loss of precession.
• Similarly an int data can also be assigned to
a variable of type float; but again there
may be loss information.
• These processes are called type casting.
Lect 4 Goutam Biswas
![Page 8: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/8.jpg)
C Programming 8✬
✫
✩
✪
float cgpa
int count
7.57
21474836472.147484e+09
Lect 4 Goutam Biswas
![Page 9: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/9.jpg)
C Programming 9✬
✫
✩
✪
#include <stdio.h>
int main() // temp1.c
{
int count = (int) 7.5 ;
float cgpa = (float) 2147483647;
printf("count: %d\n", count);
printf("cgpa: %e\n", cgpa);
return 0 ;
}
Lect 4 Goutam Biswas
![Page 10: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/10.jpg)
C Programming 10✬
✫
✩
✪
Output
$ cc -Wall temp.c$ ./a.outcount: 7cgpa: 2.147484e+09
Lect 4 Goutam Biswas
![Page 11: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/11.jpg)
C Programming 11✬
✫
✩
✪
Note
• Type casting is not a simple operation due
to the difference in internal representations
of int and float.
• In case of (int)7.5, the fractional part is
removed and the value is 7 in 32-bit integer
representation (2’s complement form).
• The value of (int)0.75 is zero (0).
Lect 4 Goutam Biswas
![Page 12: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/12.jpg)
C Programming 12✬
✫
✩
✪
Note
• In the second case (float) 2147483647
converts the integer to IEEE 754
floating-point representation. In this format
the number of bits available for storing the
significant digits is 23, and all the digits of
2147483647 cannot be stored
(223 = 8388608). So there will be a loss of
precision.
Lect 4 Goutam Biswas
![Page 13: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/13.jpg)
C Programming 13✬
✫
✩
✪
Five Basic Arithmetic Operators
✞✝
☎✆+, −, ∗, /, %
• The first four operators have their usual
meaning - addition, subtraction,
multiplication and division.
• The last operator ‘%’ extracts the
remaindera. It may be called the mod
operator.aa%b - the first operand a should be non-negative integer and the second
operand b should be a positive integer.
Lect 4 Goutam Biswas
![Page 14: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/14.jpg)
C Programming 14✬
✫
✩
✪
#include <stdio.h>
int main() // temp2.c
{
printf("0%%10 = %d\n", 0%10);
printf("4%%10 = %d\n", 4%10);
printf("10%%4 = %d\n", 10%4);
printf("-10%%4 = %d\n", -10%4);
return 0 ;
}
Lect 4 Goutam Biswas
![Page 15: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/15.jpg)
C Programming 15✬
✫
✩
✪
Output
$ cc -Wall temp2.c$ ./a.out0%10 = 04%10 = 410%4 = 2-10%4 = -2
Lect 4 Goutam Biswas
![Page 16: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/16.jpg)
C Programming 16✬
✫
✩
✪
Operator Overloading
The first four operators +,−, ∗, / can be usedfor int, float and char dataa. But the fifthoperator cannot be used on float data.
aThe actual operations of addition, subtraction etc. on int and float data are
very different due to the difference in their representations.
Lect 4 Goutam Biswas
![Page 17: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/17.jpg)
C Programming 17✬
✫
✩
✪
Mixed Mode Operations
• Mixed mode operations among int, float
and char data are permitted.
• If one operand is of type float and the
other one is of type int, the int data will be
converted to the closest float representation
before performing the operation.
Lect 4 Goutam Biswas
![Page 18: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/18.jpg)
C Programming 18✬
✫
✩
✪
#include <stdio.h>
int main() // temp3.c
{
int n = 4 ;
float a = 2.5 ;
char c = ’a’ ; // ASCII value 97
printf("%d*%f = %f\n", n, a, n*a);
printf("%d*%f+%c = %f\n",n,a,c,n*a+c);
return 0 ;
}
Lect 4 Goutam Biswas
![Page 19: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/19.jpg)
C Programming 19✬
✫
✩
✪
Output
$ cc -Wall temp3.c$ ./a.out4*2.500000 = 10.0000004*2.500000+a = 107.000000
Lect 4 Goutam Biswas
![Page 20: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/20.jpg)
C Programming 20✬
✫
✩
✪
Computer Arithmetic!
☛✡
✟✠1
3× 30.0 = 0.0
One should be careful about the divisionoperation on int data.
Lect 4 Goutam Biswas
![Page 21: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/21.jpg)
C Programming 21✬
✫
✩
✪
#include <stdio.h>
int main() // temp4.c
{
printf("1/3*30.0=%f\n", 1/3*30.0);
return 0 ;
}
Lect 4 Goutam Biswas
![Page 22: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/22.jpg)
C Programming 22✬
✫
✩
✪
Output
$ cc -Wall temp4.c$ ./a.out1/3*10.0=0.000000
Lect 4 Goutam Biswas
![Page 23: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/23.jpg)
C Programming 23✬
✫
✩
✪
#include <stdio.h>
int main() // temp4a.c
{
printf("10.0*1/3=%f\n", 10.0*1/3);
printf("10.0*(1/3)=%f\n", 10.0*(1/3));
return 0 ;
}
Lect 4 Goutam Biswas
![Page 24: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/24.jpg)
C Programming 24✬
✫
✩
✪
Output
$ cc -Wall temp4a.c$ a.out10.0*1/3=3.33333310.0*(1/3)=0.000000
Lect 4 Goutam Biswas
![Page 25: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/25.jpg)
C Programming 25✬
✫
✩
✪
Computer Arithmetic!
✞✝ ☎✆2147483647 + 1 = −2147483648
Addition may give wrong result due to rangeoverflow.
Lect 4 Goutam Biswas
![Page 26: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/26.jpg)
C Programming 26✬
✫
✩
✪
#include <stdio.h>
int main() // temp14.c
{
int n = 2147483647;
printf("n+1: %d\n", n+1) ;
return 0 ;
}
Lect 4 Goutam Biswas
![Page 27: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/27.jpg)
C Programming 27✬
✫
✩
✪
Output
$ cc -Wall temp14.c$ ./a.outn+1: -2147483648
Lect 4 Goutam Biswas
![Page 28: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/28.jpg)
C Programming 28✬
✫
✩
✪
Computer Arithmetic!
✞✝ ☎✆105 + 10−41 = 105
There will be loss of precession in floating pointarithmetic.
Lect 4 Goutam Biswas
![Page 29: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/29.jpg)
C Programming 29✬
✫
✩
✪
#include <stdio.h>
int main() // temp8.c
{
float a = 1.0e-40, b = 1.0e+5, c;
c = a+b ;
printf("%e + %e = %e\n", a, b, c);
if(b == a+b) printf("Equal\n");
else printf("not Equal\n");
return 0 ;
}
Lect 4 Goutam Biswas
![Page 30: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/30.jpg)
C Programming 30✬
✫
✩
✪
Output
$ cc -Wall temp8.c$ a.out9.999946e-41 + 1.000000e+05 = 1.000000e+05Equal$
Lect 4 Goutam Biswas
![Page 31: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/31.jpg)
C Programming 31✬
✫
✩
✪
Precedence and Associativity
• All these five operators +,−, ∗, /,% are
left-to-right associative.
• ∗, /,% have same precedence and it is higher
than +,− which also have the same
precedence.
Lect 4 Goutam Biswas
![Page 32: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/32.jpg)
C Programming 32✬
✫
✩
✪
‘=’ is Right Associative
✛
✚
✘
✙int count = 10, n ;
n = count = 2*count + 5 ;
The variable n gets the updated value of counti.e. 25.
Lect 4 Goutam Biswas
![Page 33: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/33.jpg)
C Programming 33✬
✫
✩
✪
Precedence of =
The precedence of assignment operator(s) islower than every other operator except thecomma ‘,’ operator.
Lect 4 Goutam Biswas
![Page 34: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/34.jpg)
C Programming 34✬
✫
✩
✪
Computer Arithmetic!
✞✝ ☎✆1.3 6= float a = 1.3;
Lect 4 Goutam Biswas
![Page 35: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/35.jpg)
C Programming 35✬
✫
✩
✪
#include <stdio.h>
int main() // temp5.c
{
float a = 1.3 ;
if(a == 1.3) printf("Equal\n") ;
else printf("Not equal\n") ;
return 0 ;
}
Lect 4 Goutam Biswas
![Page 36: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/36.jpg)
C Programming 36✬
✫
✩
✪
Output
$ cc -Wall temp5.c$ ./a.outNot equal
Lect 4 Goutam Biswas
![Page 37: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/37.jpg)
C Programming 37✬
✫
✩
✪
Error
• Division of int data by zero gives error at
run timea.
• But the division of float or double data by
zero does not generate any run time error.
The result is infb.aGCC error message is funny.bThis value can be used.
Lect 4 Goutam Biswas
![Page 38: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/38.jpg)
C Programming 38✬
✫
✩
✪
#include <stdio.h>
int main() // temp9.c
{
int n = 10, m ;
printf("Enter an integer: ");
scanf("%d", &m);
printf("n/m: %d\n", n/m);
return 0 ;
}
Lect 4 Goutam Biswas
![Page 39: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/39.jpg)
C Programming 39✬
✫
✩
✪
Output
$ cc -Wall temp9.c$ ./a.outEnter an integer: 0Floating point exception
Lect 4 Goutam Biswas
![Page 40: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/40.jpg)
C Programming 40✬
✫
✩
✪
#include <stdio.h>
#include <math.h>
int main() // temp10.c
{
float n = 10.0, m, r ;
printf("Enter a number: ");
scanf("%f", &m);
printf("n/m: %f\n", r = n/m);
printf("atan(%f) = %f\n", r, atan(r));
return 0 ;
}
Lect 4 Goutam Biswas
![Page 41: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/41.jpg)
C Programming 41✬
✫
✩
✪
Output
$ cc -Wall temp10.c -lm$ a.outEnter a number: 0n/m: infatan(inf) = 1.570796
Lect 4 Goutam Biswas
![Page 42: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/42.jpg)
C Programming 42✬
✫
✩
✪
Integer ↔ Character
• If a char data is assigned to an int type
variable, the ASCII value of the data is
stored in the location.
• But if an int data (32-bit size) is assigned to
a char type variable (8-bit size), the least
significant 8-bits of the data are stored in
the location.
Lect 4 Goutam Biswas
![Page 43: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/43.jpg)
C Programming 43✬
✫
✩
✪
count
grade
’C’
1345’A’
67
int count ; char grade ;
Lect 4 Goutam Biswas
![Page 44: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/44.jpg)
C Programming 44✬
✫
✩
✪
#include <stdio.h>
int main() // temp6.c
{
int count = ’C’ ;
char grade = 1345 ;
printf("count: %d, grade: %c\n",
count, grade) ;
return 0 ;
}
Lect 4 Goutam Biswas
![Page 45: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/45.jpg)
C Programming 45✬
✫
✩
✪
Output
$ cc -Wall temp6.ctemp6.c: In function ‘main’:temp6.c:5: warning: overflow inimplicit constant conversion$ ./a.outcount: 67, grade: A
Lect 4 Goutam Biswas
![Page 46: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/46.jpg)
C Programming 46✬
✫
✩
✪
Note
• The ASCII code for ‘C’ is 67 and that is
stored in the location for count.
• The internal representation of 1345 is
0000 0000 0000 0000 0000 0101 0100 0001.
The decimal value of the least significant
byte (8-bit) 0100 0001 is 65, the ASCII code
for ‘A’.
Lect 4 Goutam Biswas
![Page 47: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/47.jpg)
C Programming 47✬
✫
✩
✪
Pre and Post Increments
✬
✫
✩
✪
int count = 10, total = 10 ;
++count ;
total++ ;
Lect 4 Goutam Biswas
![Page 48: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/48.jpg)
C Programming 48✬
✫
✩
✪
• Both ++count and total++ are expressions
with increment operators. The first one is
pre-increment and the second one is
post-increment.
• At the end of execution of the corresponding
statements, the value of each location is 11.
• But the value of the expression ++count is
11 and that of the total++ is 10.
Lect 4 Goutam Biswas
![Page 49: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/49.jpg)
C Programming 49✬
✫
✩
✪
Pre and Post Decrements
✬
✫
✩
✪
int count = 10, total = 10 ;
--count ;
total-- ;
Similarly we have pre and post decrementoperators.
Lect 4 Goutam Biswas
![Page 50: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/50.jpg)
C Programming 50✬
✫
✩
✪
More Assignment Operators
✛
✚
✘
✙int count = 10, total = 6 ;
count += 5*total ;
The new value of count is 10 + 5× 6 = 40.count += 5*total; is equivalent tocount=count+5*total;.
Lect 4 Goutam Biswas
![Page 51: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/51.jpg)
C Programming 51✬
✫
✩
✪
More Assignment Operators
But count *= 5+total; is not same as count= count*5+total; In the first case the value is10× (5 + 6) = 110. But in the second case it is10× 5 + 6 = 56.
Lect 4 Goutam Biswas
![Page 52: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/52.jpg)
C Programming 52✬
✫
✩
✪
#include <stdio.h>
int main(){ // temp7a.c
int count = 10, total = 6;
printf("First val: %d\n", count *= 5+total);
count = 10; total = 6;
printf("Sec. val: %d\n", count = count*5+total);
return 0;
}
Lect 4 Goutam Biswas
![Page 53: Basic Assignment and Arithmetic Operatorscse.iitkgp.ac.in/~goutam/bbsPDS/lect4.pdf · Five Basic Arithmetic Operators ☎ +, −, ∗, /, % • The first four operators have their](https://reader033.vdocuments.site/reader033/viewer/2022042922/5f6c283ca7e0ef06fb16f0c9/html5/thumbnails/53.jpg)
C Programming 53✬
✫
✩
✪
Unary ‘+’ and ‘−’
The unary ‘−’ and ‘+’ have their usualmeaning with higher precedence than ∗, /,%.
Lect 4 Goutam Biswas