0% found this document useful (0 votes)
64 views

Operators

Uploaded by

yimit65788
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
64 views

Operators

Uploaded by

yimit65788
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

C Programming Lecture Notes

Operators
Operator: An operator is a symbol that tells the computer to perform certain mathematical (or) logical
manipulations. Operators are used in programs to manipulate data and variables. The data items that
operators act upon are called operands.
Some operators require two operands, while others act upon only one operand. The operators are
classified into unary, binary and ternary depending on whether they operate on one, two (or) three operands
respectively.

Types of operators:

In ‘c’ operators can be classified into various categories based on their utility and action.
A list of operators types is given below

• Arithmetic operators.
• Relational operators.
• Logical operators.
• Assignment operators.
• Increment and Decrement operators.
• Conditional operators.
• Bitwise operators.
• Comma operators.

Arithmetic operators: it can perform arithmetic operations and can be classified into unary and binary
arithmetic operators. It can operate on any built-in data type.

A list of arithmetic operators and their meanings are given bellow:


Operator meaning

+ Addition (or) unary plus.


- Subtraction (or) unary minus.
* Multiplication.
/ Division.
% Modulo Division (Remainder after division).

Note: - c has no operator for exponentiation. A function pow(x,y) exists in math.h which returns xy
 The unary – operator has the effect of multiplying operand by -1.

Integer arithmetic: - when 2 operands such as x and y are declared as integers, an arithmetic operation
performed on these integers is called Integer arithmetic. It always yields an integer value.
Ex: (1) Int x=16, y=5; Ex: 6/8 = 0
X+y = 21 -6/-8 = 0
x-y = 11 -6/8 = 0 (or) -1
x*y = 80
x/y = 1

(1) #include<stdio.h>
main()
{
int month,days;
printf(“enter the number of days \n”);
scanf(“%d”,&days);
months=days/30;
days=days%30;
printf(“ months is %d days are %d”,months,days);
}

ex: 265 --- months is 8 days are 25.


364 --- months is 12 days are 4.
45 --- months is 1 days are 15.

VVSV 23
C Programming Lecture Notes

Floating Point arithmetic: - (FPA) Floating point arithmetic involves operands of real type in decimal
or exponential notation. The remainder operator % is not applicable to FPA.
Ex : - float a=14.0, b= 4.0;
P = a/b = 3.5000
Q= b/a = 0.285714
R = a+b = 18.0000

Mixed Mode arithmetic:- in this mode, if either of the operands is real, the resultant value is always a
real value.
Ex: 35/5.0 = 7.0
Here 5.0 is a double constant, 35 is converted to a double and result is also a double.

Relational Operators:-
 Arithmetic operators are used to evaluate arithmetic expressions, relational operators are used to
compare arithmetic, logic and character expressions.

 Compressions can be done with the help of relational operators.

 Each of these operators compares their left hand side with their right hand side.

 The whole expression involving the relational operator then evaluates to an integer.
It evaluates 0 if the condition is false, and 1 if it is true.

Operator Meaning
< Lessthan
<= Lessthan (or) Equal to
> Greaterthan
>= Greaterthan(or)Equal to
== Equal to
!= Not Equal to

Ex:- #include<stdio.h>
main()
{
int I,j;
printf(“enter two values \n”);
scanf(“%d %d”,&I,&j);
if(i==j)
pritf(“both are equal \n”);
else
printf(“both are not equal \n);
}

Logical operators:
 it is used to compare or evaluate logical and relational expressions. There are 3 logical operators in c.

Operator meaning

&& logical AND.


|| logical OR.
! logical NOT.

 An expression involving && and || is some times called compound expression, since the expression
involves two other expressions, i.e. each of these operators (&& and ||) take two expressions, one to the left
and another to right.

Logical AND :- ex a>b && x=10

Logical OR :- ex a<m || a<n

Logical NOT:- the ! Operator tales single expression and evaluates to true if the expression is false, and
evaluates to false if the expression is true.

VVSV 24
C Programming Lecture Notes

Ex: !(x>=y)  x<y

The ! Operator is convict to use when you want to test whether the value of a variable is zero.

If(!i)
Printf(“the value of I is zero \n);

 !i – this is true only when if the value of I is 0.

Increment and decrement operators:

 The increment and decrement operators are very useful in ‘c’ language. These are extensively used in for
and while loops.
The syntax is ++<variable> --<variable>
<variable>++ <variable>--

 The operator ++ adds 1 to the operand and – subtracts 1 from the operand. These operands manifest in
two forms i.e. prefix and postfix.
Ex: the ++ operator can be used in two ways.
++m and m++ (these two are different operations).

 The first expression immediately increments the value ‘m’ by 1.


main()
{
int n,m=1;
n=++m;
printf(“ prefix operation :n=%d”,m=%d\n”,n,m);
}
prefix oeration: n=2,m=2.

 The expression ++m will increment first, and then this value is assigned to n, resulting in having the same
value.
 main()
{
int n,m=1;
n=m++;
printf(“ postfix operation :n=%d”,m=%d\n”,n,m);
}
postfix operation n=1,m=2
 The expression m++ will first evaluate the value of m, resulting is 1 being assigned to n and then the value
of m being incremented to 2.

Bitwise operators:

 A bitwise operator operates on each bit of data. These operators are used for testing, complementing or
shifting bits to the right or left.
 Usually these operators are not useful in cases of float and double variables.

Operator Meaning
& Bitwise AND.
| Bitwise OR.
^ Bitwise XOR.
<< Left Shift (Shift Left).
>> Shift Right.
~ compliment.

Bitwise AND: This operator produces a 1 only if both bits in an operation are 1, else it produces a 0. For
example, suppose that a=13 and b=25. If we have c= a&b, the following result will be produced.

a = 0000 0000 0000 1101 (13)


&
b = 0000 0000 0001 1001 (25)

VVSV 25
C Programming Lecture Notes

----------------------------------
a&b= 0000 0000 0000 1001 (9)
----------------------------------

Bitwise OR: This operator produces a 1 if both one or both in an operation are 1, else it produces a 0. For
example, suppose that a=13 and b=25. If we have c= a|b, the following result will be produced.

‘a’ bit in c will be 1 whenever at least one of the corresponding bits in a or b is 1

a = 0000 0000 0000 1101 (13)


|
b = 0000 0000 0001 1001 (25)
----------------------------------
a|b= 0000 0000 0001 1101 (29)
----------------------------------

Bitwise XOR: This operator produces a 1 only if one bit in an operationis 1 and the other bit is 0, else it
produces a 0. For example, suppose that a=13 and b=25. If we have c= a^b, the following result will be
produced.

a = 0000 0000 0000 1101 (13)


^
b = 0000 0000 0001 1001 (25)
----------------------------------
a^b= 0000 0000 0001 0100 (20)
----------------------------------

<<(Left Shift) Operator: This operator shifts the bit positions of a variable to left by n positions. For
example, if a=13 and we have b=a<<1, the following is the result

a = 0000 0000 0000 1101 (13)


<<1
b= 0000 0000 0001 1010
so, b=26

>>(Right Shift) Operator: This operator shifts the bit positions of a variable to right by n positions. For
example, if a=26 and we have b=a>>1, the following is the result

a = 0000 0000 0001 1010 (13)


>>1
b= 0000 0000 0001 1010
so, b=13

Thus, we can see that left shift by 1 is actually the same as multiplication by 2, and right shift by 1
position is equivalent to division by 2.

Shifting negative numbers:

a= -3 0011
1100
------
1
------
1101
------
(1) To find 2’s complement
 Complement to the given number.
 And add 1 to complement number.

VVSV 26
C Programming Lecture Notes

~(One’s complement) operator: This operator reverses each bit(i.e., changes each 0 to 1, and vice
versa). Thus, if a=13 and we have b=~a, the following happens

a = 0000 0000 000 1101 (13)


>>1
b= 1111 1111 1111 0010
so, b=65522

Conditional Operator (ternary operator)(?:): C includes a very special operator called ternary (or)
conditional operator. It is called ternary because it uses three expressions. The ternary operator acts like a
shorthand version of the if-else construction.

The conditional operator consist of two symbols


(1) The question mark(?)
(2) The colon (:)

The syntax for conditional operator is

(expression 1)?(expression 2):(expression 3)


Which results in either expression 2 (or) expression 3 being evaluated. If expression 1 is true, then
expression 2 is evaluated; otherwise , expression 3 is evaluated. The conditional operator is used in place of a
single if-else to make an assignment.

Larger = i > j ? i : j ;
Here i > j is condition for testing
? mark is conditional operator
i is for expression1.
j is for expression2.

 This is the only operator in c that takes 3 operands.

1) Write a program to find maximum of two numbers by using conditional operator.


A) #include<stdio.h>
main()
{
int i,j,larger;
printf(“enter two numbers\n”);
scanf(“%d %d”,&I,&j);
lager=i >j ?i :j;
printf(“the larger of given two numbers is %d:”,larger);
}

Special operators:-

Comma operator:- A set of expressions separated by comma is a valid construct in the ‘c’ language.
Ex: int i , j;
Here i and j are declared as integers.

Consider the following statement that makes use of the comma operator.
i = ( j = 3 , j + 2);
the right hand side consists of two expressions separated by comma. These expressions are evaluated from
left to right.
First the value 3 is assigned to j and then the expression j + 2 is evaluated.
The value of the entire comma-separated expression is the value of the right most expression. Hence the
value assigned to i would be 5.
Ex: c= ( a = 10, b =20 , a + b);
First a =10 , b = 20 and a + b = 30 is assigned to c.

Other Operators:

VVSV 27
C Programming Lecture Notes

Sizeof: The operator sizeof gives the datatype or the variable in terms of bytes occupied in the memory. The
sizeof operator returns the no. of bytes the operand occupies in memory. The operand may be a variable, a
constant or a data type.

Ex: sizeof (int); -- it returns 2 bytes.

&(Address of) operator:- The address of operator (&) returns the address of the variable. The operand
may be a variable, a constant
m= &n;
here address of n is assigned to m. this m is not an ordinary variable, it is a variable which holds address of
another variable.

*(Value at address) operator:- The value at address operator (*) returns the value stored at a particular
address. The value at address operator is also called indirection operator.
Ex: x = *m;
Here the value at address of m is assigned to x and m is going to hold the address.

TYPE CONVERSION:

The process of converting one data type value into another data type is called Type conversion. This is two
types
(1) Implicit / coercion.
(2) Explicit / Type casting.

Implicit type conversion:- The process of converting one type value into another value implicitly by the
compiler is called implicit type conversion (or) coercion.

Explicit type conversion:- The process of converting one type into another value explicitly by
programmer is called Explicit type conversion (or) type casting.

Type cast operator:- ‘c’ permits mixing of constants and variables of different types in an expression, but
during evaluation, it follows a definite rule of type conversion.

In an expression, if two operands are of different types, then the lower type value is automatically converted
in higher type. This process is implicit type conversion (or) automatic type conversion (or) type coercion, but
in some situations we need to convert one type value into another explicitly. This process is known as explicit
type conversion (or) type casting.
Syntax: ( type name) expression;
main() main()
{ {
int a; char x;
a=(int)’a’; x=(char)65;
printf(“ %d”,a); printf(“ %c”,x);
} }

O/P – 97 O/P – A

main()
{
int a=10;float b=3.14;
printf("value of a is %d \n",a);
printf("address of a is %u \n",&a);
printf("value of b is %f \n",b);
printf("address of b is %u \n",&b);
}

OUTPUT :-

value of a is 10
address of a is 3221207028 (Assumption)
value of b is 3.140000
address of b is 3221207024( Assumption).

VVSV 28
C Programming Lecture Notes

main()
{
int a=10;float b=3.14;
printf("value of a is %d \n",*(&a));
printf("address of a is %u \n",&a);
printf("value of b is %f \n",*(&b));
printf("address of b is %u \n",&b);
}

OUTPUT:-
value of a is 10
address of a is 3221210948
value of b is 3.140000
address of b is 3221210944
 Assume ‘k to be an integer variable and ‘a to be float variable then the values of k and a for the following
are

k = 2/9 = 0; a = 2/9 = 0.000000


k = 2.0/9 = 0; a = 2.0/9 = 0.2222222
k = 2/9.0 = 0; a = 2/9.0 = 0.2222222
k = 2.0/9.0 = 0; a = 2.0/9.0 = 0.222222

1) Write a program to find maximum of given 3 numbers using conditional operator.


A) #include<stdio.h>
main()
{
int a,b,c,max;
printf("enter 3 numbers \n");
scanf("%d %d %d", &a,&b,&c);
max=(a>b)&&(a>c)?a:(b>c)?b:c;
printf("maximum number is %d",max);
}
OUTPUT:
enter 3 numbers
3
7
9
maximum number is 9.

2) Write a program for preincrement and postincrement.


main()
{
int a=10;
printf("a=%d \n",a);
++a;
printf("a=%d\n",a);
a++;
printf("a=%d\n",a);
}

OUTPUT:
a=10
a=11
a=12

3) Write a program for predecrement and postdecrement.


#include<stdio.h>
main()
{
float a=10.9;
printf("a=%f \n",a);
- -a;
printf("a=%f\n",a);

VVSV 29
C Programming Lecture Notes

a--;
printf("a=%f\n",a);
}

OUTPUT:
a=10.900000
a=9.900000
a=8.900000

4) Write a program for preincrement and postincrement


#include<stdio.h>
main()
{
int a=10,b;
b=a++;
printf("a=%d b=%d\n",a,b);
b=++a;
printf("a=%d b=%d\n",a,b);
}

OUTPUT:
a=11 b=10
a=12 b=12

5) Write a program for predecrement and postdecrement.


main()
{
float a=9.9,b;
b=a--;
printf("a=%f b=%f\n",a,b);
b=a++;
printf("a=%f b=%f\n",a,b);
}

OUTPUT:
a=8.900000 b=9.900000
a=9.900000 b=8.900000
6) Write a program for sizeof() operator.
main()
{
int a=10;float b=5.6; char c='*';
printf("size of(a)=%d\n",sizeof(a));
printf("size of(b)=%d\n",sizeof(b));
printf("size of(c)=%d\n",sizeof(c));
}

OUTPUT :
size of(a)=4
size of(b)=4
size of(c)=1

7) Write a program for “<” operator


main()
{
int a=10,b=20;
printf("a<b:%d",a<b);
}
OUTPUT:
a<b:1
 In the above program if a=20 and b=20 then the o/p is a<b:0
8) Write a program for <=

VVSV 30
C Programming Lecture Notes

main()
{
int a=10,b=20;
printf("a<=b:%d",a<=b);
}

OUTPUT:

a<=b:1

9) Write a program for ==

main()
{
int a=20,b=20;
printf("a==b:%d",a==b);
}
OUTPUT:

a==b:1

10) Write a program for !

main()
{
int a=-10;
printf("a=:%d\n",a);
printf("!a=%d\n",!a);
printf("!!a=%d\n",!!a);
}

OUTPUT:

a=:-10
!a=0
!!a=1

Type conversions in Expressions:


Automatic Type conversion: if the operands are of different types, the lower type is automatically converted
into the higher type before the operation proceeds. And the result is of the higher type.

Ex: Int i,x;


float f;
double c;

long int l;
x=l/i+i*f–c

Rules that are applied while evaluating expressions:

 All short and char are automatically converted to int, then


1) If one of the operands is long double, the other will be converted to long double and result will be
long double.
2) else if one of the operands is double, the other will be converted to double and the result will be
double.
3) else if one of the operands is float, the other will be converted to double and the result will be float.
4) else if one of the operands is unsigned long int, the other will be converted to double and the result
will be unsigned long int.
5) else if one of the operands is long int, and the other is unsigned int then

VVSV 31
C Programming Lecture Notes

a) if unsigned int can be converted to long int, the unsigned int operand will be converted as such and
the result will be long int.
b) else both operands will be converted to unsigned long int and the result will be unsigned long int.
6) else if one of the operands is long int, the other will be converted to double and the result will be
long int.
7) else if one of the operands is unsigned int, the other will be converted to double and the result will
be unsigned int.

example:

x = (int) 7.5  7.5 is converted to integer by truncation.


A = (int) 21.3/(int) 4.5  evaluated as 21/4 and the result would be 5.
B = (double) sum/n  division is done in floating point mode.
Y = (int) a + b  a is converted to integer and then added to b.
Z = (int) (a + b)  the result of a+b is converted to integer.
P = cos((double)x)  converts x to double before using it.

Ex (1): x = (int)( y + 0.5)


Suppose y is 27.6 then first (y + 0.5) will be executed and then the result would be 28.1.this result
stored in x.
i.e. x = (int) (28.1)
x = 28.
Hence the resultant value of x is 28.

Ex (2): when y and p are double and m is int


 y = p + m;
 y = p + (double) m;

Operator precedence and associativity:-

 Each operator in c has a precedence associated with it.


 This precedence is used to determine how an expression involving more than one operator is evaluated.
 The operators at the higher level of precedence are evaluated first.
 The operators of the same precedence are evaluated either L to R or R to L depending on the level. This is
known as associativity property of an operator.

Precedence level Operator Operation Associativity


() Functional call(or) LR
Parentheses
1 [] Array subscript LR
. Dot LR
 Arrow LR

RL
! Logical NOT
RL
~ One’s compliment
RL
- Unary minus
RL
++ Increment
RL
2 -- Decrement
RL
& Address of
RL
* Indirection
RL
(data_type) Cast operator
RL
sizeof( ) Sizeof special operator
RL

* Multiplication LR
3 / Division LR
% Modulus LR

VVSV 32
C Programming Lecture Notes

+ Addition LR
4
- Subtraction LR

<< Left shift LR


5
>> Right shift LR

< LR
Less than
> LR
Greater than
6 <= LR
Less than or equal to
Grater than or equal to
>= LR

== Equal to LR
7
!= Not equal to LR

8 & Bitwise AND LR


9 ^ Bitwise XOR LR
10 | Bitwise OR LR
11 && Logical AND LR
12 || Logical OR LR
13 ?: Conditional RL

= += -= *= /=
14 %= >>= <<= &= Simple and compound assignment RL
^= |=

15 , Comma LR

Ex: x = 20, y = 5;
If ( x == 10 + 15 && y <10)
If( x == 25 && y<10)

VVSV 33
C Programming Lecture Notes

Here y<10 is executed first, then


X==25  false
Y < 10  true
If( false && true )  it returns 0.
Hence the result is 0.

Preprocessor Directives:- Preprocessor directives are instructions given by us to the compiler and are
executed before the process of compilation
(OR)
A c-preprocessor is a program that processes our source program before it is passed to the compiler.

 Preprocessor commands are also known as preprocessor directives. they begin with # symbol. Some of the
preprocessor directives are
(1) macro expansion.
(2) file inclusion.

Macro Expansion:- Macro Expansion is defined as


# define name text is called macro definition (or) macro.
Here name represents macro template. And text represents macro expansion.

 write a program to find min of two numbers if first no is less than the second no. then print ‘1’ other
wise print ‘0’.
A) #include<stdio.h>
#define true 1
#define false 0
main()
{
int a,b;
printf("enter two numbers\n");
scanf("%d %d",&a,&b);
(a<b)?printf("%d",true):printf("%d",false);
}

OUTPUT:
enter two numbers
3
5
1
OUTPUT:
enter two numbers
5
3
0

 #include<stdio.h>
#define AND &&
#define OR ||
main()
{
int a=10,b=20,c;
c=a>b AND b<=20 OR a!=10;
printf("%d",c);
}

OUTPUT:
0

 #include<stdio.h>
#define P printf
#define S scanf
main()
{
int a;

VVSV 34
C Programming Lecture Notes

P("enter a number\n");
S("%d",&a);
P("a=%d",a);
}

OUTPUT:

enter a number
9
a=9.

 #define LINE printf("HELLO GOOD MORNING\n");


main()
{
LINE;
LINE;
}

OUTPUT:
HELLO GOOD MORNING
HELLO GOOD MORNING

 #include<stdio.h>
#define LINE printf("one\n");printf("two\n");printf("three\n");
main()
{
LINE;
}

OUTPUT:
one
two
three

 #include<stdio.h>
#define LINE {printf("one\n");printf("two\n");printf("three\n");}
main()
{
LINE;
}

OUTPUT:
one
two
three

File Inclusion:
 #include directive is used for file inclusion.
 #include directive causes of one file to be included in another file.

Syntax: #include “filename” (or) #include<filename>

In general we write

#include<stdio.h> or #include”stdio.h”

This statement causes entire contents of the file to be replaced in the program at that point. In general a file
to be included is having .h extension.

Here h — represents header file.

VVSV 35
C Programming Lecture Notes

Files to be included in our program are header files, because they contain statements which when declared
replaces their contents at the beginning of our program.

Header files ex:- #include<math.h>


#include<ctype.h>
#include<conio.h>
#include<string.h>

 Preprocessor directives can be placed at anywhere in the program, but in general, they are placed at
beginning of the program.

 Write a program to calculate simple interest and compound interest.

#include<math.h>
main()
{
float p,r,ci,si;
int n,t;
printf("Enter Principle Amount\n");
scanf("%f",&p);
printf("Enter the rate of Interest\n");
scanf("%f",&r);
printf("Enter the number of years\n");
scanf("%d",&n);
printf("Enter the number of times the interest compounded per year\n");
scanf("%d",&t);
si=(p*n*r)/100;
ci=p*pow(1+(r/n),n*t);
//p=principle amount
//r=annual nominal interest rate(as decimal)--r/100
//n=the number of time the interest is compounded per year
//t=the number of years
//ci=amount after time t
//sample data p=1500,r=0.043,n=4,t=6then ci=1938.84
printf("the simple interest is %f\n",si);
printf("The compound Interest is %f\n",ci);
}

OUTPUT:-
Enter Principle Amount
1500
Enter the rate of Interest
043
Enter the number of years
4
Enter the number of times the interest compounded per year
6
the simple interest is 2.580000
The compound Interest is 1938.836792

1) Write a program to convert centigrade to Fahrenheit and vice versa.


main()
{
float c,f;
printf("enter temperature in celcius\n");
scanf("%f",&c);
f=(c*9/5)+32;
printf("eqivalent fahrenheit is %f\n",f);
printf("enter the temperature in fahrenheit\n");
scanf("%f",&f);
c=(f-32)/1.8;
printf("eqivalent celcius is %f\n",c);

VVSV 36
C Programming Lecture Notes

}
OUTPUT:
enter temperature in celcius
10
eqivalent fahrenheit is 50.000000
enter the temperature in fahrenheit
50
eqivalent celcius is 10.000000

2) Write a program to get given character is vowel (or) not.


#include<stdio.h>
main()
{
char ch;
printf("enter a character\n");
scanf(" %c",&ch);
(ch=='a'||ch=='e'||ch=='i'||ch=='o'||ch=='u')?printf(" %c is vowel",ch):printf("%c is not a
vowel",ch);
}
OUTPUT:
enter a character
a
a is vowel
OUTPUT:
enter a character
f
f is not a vowel.

3) Write a program to check the given character is digit or not


#include<stdio.h>
main()
{
char ch;
printf("enter a charecter\n");
scanf(" %c",&ch);
(ch>=48 &&ch<=57)?printf(" %d is digit",ch):printf(" %d is not a digit",ch);
}
OUTPUT:
enter a charecter
3
51 is digit.

OUTPUT:
enter a charecter
r
114 is not a digit.

4) Write a program to check the given character is in upper case . if it is in upper case then it convert
into lowercase.

main()
{
char ch;
printf("enter a charecter\n");
scanf(" %c",&ch);
(ch>=65 &&ch<=90)?printf(" %c is in upper case\n",ch):printf(" %c is not in upper case\n",ch);
ch=ch+32;
printf("after conversion in lower case ch=%c\n",ch);
}

OUTPUT:
enter a charecter
S

VVSV 37
C Programming Lecture Notes

S is in upper case
after conversion in lower case ch=s
OUTPUT:
enter a charecter
k
k is not in upper case
after conversion in lower case ch=ï

5) Write a program to convert upper case letter to lower case.

#include<stdio.h>
main()
{
char ch;
printf("enter a chrecter \n");
scanf(" %c",&ch);
ch=ch+32;
printf("after conversion ch=%c\n",ch);
}
OUTPUT:
enter a chrecter
K
after conversion ch=k

6) Write a program to convert lower case letter to upper case.

main()
{
char ch;
printf("enter a chrecter \n");
scanf(" %c",&ch);
ch=ch-32;
printf("after conversion ch=%c\n",ch);
}

OUTPUT:
enter a chrecter
k
after conversion ch=K

7) main()
{
int a=65;
printf(“value of a is =%d”,a);
printf(“corresponding character is a=%c”,ch);
}

OUTPUT:
a=65
A

VVSV 38

You might also like