3. Cyclic
nature of unsigned int:
Range
of unsigned int is 0 to 653535. If we will assign a value greater than 653535
then value of variable will be changed to a value if we will move clockwise
direction as shown in the figure according to number. If that number is less
than 0 then we have to move in anti clockwise direction.
Short
cut formula to find cyclic value:
If number is X where X is greater than 65535 then
New value = X % 65536
If number is Y where Y is less than 0 then
New value = 65536– (Y% 65536)
4. Cyclic nature of signed int:
Range
of unsigned int is -32768 to 32767. If we will assign a value greater than
32767 then value of variable will be changed to a value if we will move
clockwise direction as shown in the figure according to number. If that number
is less than -32768 then we have to move in anti clockwise direction.
Short
cut formula to find cyclic value:
If
number is X where X is greater than 32767 then
p = X % 65536
if p <=32767
New value = p p = X % 65536
if p <=32767
else
New value = p - 65536
If number is Y where Y is less than -32768 then
p = Y % 65536
If p <= 32767
New value = -p
else
New value = 65536 -p
Note: Same rule is also applicable in case of signed long int and unsigned long int.
Overflow of char data type in c programming
Overflow of int data type in c programming
Overflow of long int data type in c programming
Overflow of float data type in c programming
2 comments:
Write a program in C++ to display the size of int, char, and. float data types
Cyclic nature of unsigned int... All well.
Cyclic nature of int... Aaaand we're in undefined behaviour land.
http://stackoverflow.com/a/4240878/1592377
Post a Comment