## How does the computer save Real Numbers?

# How does the computer save real numbers?

Lets look at only 2 bytes. (in reality, the computer uses more than 4 bytes to save real numbers.)

The computer uses the following equation to save real numbers

### Why use this equation?

setting ‘m’ as numbers before ‘.’ and setting ‘e’ as numbers after ‘.’ is inefficient and takes a lot of memory to save real numbers.

However, using the equation, the computer is able to save real numbers efficiently, no matter how complicated they are.

Still, the computer cannot save wide range of real numbers and cannot save them accurately. It simply saves the data closest possible to the value we want to save. This is called float-point error.

### Float-point error

#include <studio.h>

int main(void)

{

int i;

float f=0.0;for(i=0; i<100; i++)

f+=0.1printf(“%f “, f);

return 0;

}

the following is a good example of float error.

Variable f is declared,

until ‘i’ becomes 100, 0.1 is added to ‘f’

since ‘i++’ is used, ‘f’ is added by 0.1 100 times

The output must be 10, however you will see slight difference in the value. For example,

10.00002

## Binary Numbers – The Easy way to Calculate!

The table below explains everything!

0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |

2^{7} |
2^{6} |
2^{5} |
2^{4} |
2^{3} |
2^{2} |
2^{1} |
2^{0} |

Simply add the 2^{x} when that specific place has ‘1’ instead of ‘0’

Therefore, the example above will be **01001001** = **2 ^{6}+2^{3}+2^{0}**= 64+8+1 =

**73**

Simple and easy way to calculate binary numbers :)

OR you can simply use my Binary Swift v2 :P

## C Language Operators

*What are operators? *

Programming languages typically support a set of **operators**: operations which differ in the calling of syntax and/or the argument passing mode from the language’s functions. Common examples that differ by syntax are mathematical arithmetic operations, e.g. “>” for “greater than”, with names often outside the language’s set of identifiers for functions, and called with a syntax different from the language’s syntax for calling functions. Common examples that differ by argument passing mode are boolean operations, e.g. a short-circuiting conjunction that only evaluates later arguments if earlier ones are not false, in a language with strict call-by-value functions.

*–Wikipedia*

.

.

.

### 1. Assignment Operator(=) and Arithmetic Operators(+, -, *, /, %)

Operator |
Function |
Direction of Function |

= | Substitute the value on the right to the left Ex) a=42 |
← |

+ | Add Left value to the right value Ex) a=45+6 |
→ |

– | Subtract the value on the right from the left Ex) a=5-4 |
→ |

* | Multiply the values Ex) a=4*3 |
→ |

/ | Divide the value on the left with the right Ex) a=2/6 |
→ |

% | Divide the value on the left and show the remainder Ex) a=2%6 |
→ |

If you doubt what these are (except %), please consider going over your Primary 1 books.

.

.

.

### 2. MORE Assignment Operators

a = a + b | a += b |

a = a – b | a -= b |

a = a * b | a *= b |

a = a / b | a /= b |

a = a % b | a %= b |

The functions on the left is same as the functions on the right :)

Don’t get confused with *+=* and *=+*!!

.

.

.

### 3. MORE Arithmetic Operators

Operator |
Function |
Direction of Function |

++a | Add 1 and carry out further functions Ex) a=1 printf(“a is %d”, ++a);[ a is 2 ], a=2 |
← |

a++ | Carry out the function and add 1 Ex) a=1 printf(“a is %d”, a++);[ a is 1 ], a=2 |
← |

–a | Subtract 1 and carry out further functions Ex) a=1 printf(“a is %d”, –a);[ a is 0 ], a=0 |
← |

a– | Carry out the function and subtract 1 Ex) a=1 printf(“a is %d”, a–);[ a is 1 ], a=0 |
← |

.

.

.

### 4. Relational Operators

Operator |
Function |
Direction of Function |

< | a<b Is a smaller than b? |
→ |

> | a>b Is a greater than b? |
→ |

== | a==b Does a equal to b? |
→ |

!= | a!=b Does a not equal to b? |
→ |

<= | a<=b Is a smaller or equal to b? |
→ |

>= | a>=b Is a greater or equal to b? |
→ |

They always give a boolen value :)

therefore..

int val1 = 12;

int val2 = 10;int result1 = (val1==val2);

printf(“Result : %d”, result1);

wil give

Result : 0

since val1 does not equal to val2.

(1=true, 0=false)

.

.

.

### 5. Logical Operators

Operator |
Function |
Direction of Function |

&& | If both are true, value is true (and) Ex) a&&b |
→ |

|| | If both any one is true, value is true (or) Ex) a || b |
→ |

! | If it’s true, value is false If it’s false, value is true Ex) !a |
← |

Once again, boolen values :)

.

.

.

### 6. Comma(,) Operator

This operator is used in many ways. it is used when declaring multiple variables, calculating two functions in a single line and much more.

A good example is shown as below

#include <studio.h>

int main(void)

{

int a=4, b=2;//comma here

printf(“Hello “), printf(“World!\n”);//commaprintf(“%d”, a), printf(“%d”, b);

return 0;

}

This will give..

Hello World!

42

:D

## Two Things to be Aware when you Declare a Variable

# 1. INTRODUCE FIRST

int main(void)

{

int a;//declare

int b;//declarea=5;//input

b=1;//inputprintf(“%d + %d = %d\n”, a, b, a+b);

return 0;

}

#### CORRECT :)

int main(void)

{

int a;//declare

a=5;//input

int b;//declare

b=1;//inputprintf(“%d + %d = %d\n”, a, b, a+b);

return 0;

}

#### WRONG :(

————————————————–

# 2. NAME IT PROPERLY

### 3 SIMPLE things! :D

1. Variables consist of Alphabets, Numbers and Underscore(_)

2. C Language differentiates *small letters* and **CAPITAL LETTERS** :D

Therefore *val* and **Val** are different variables :)

3. Variable CANNOT start with a Numb3r or be a Key Word! It should also not contain any Space or Special Letters

## Latest Comments