## Arithmetic and logical binary operators in c programming language

22 comments### Asx listed equity options

This article explains what decimal and binary prefixes are, when they should be used, what are the differences between them and how they are used with hardware and software. The International System of Units abbreviated SI defines a set of prefixes, with an associated symbol, to represent multiples or submultiples of a unit of measure.

For example, the kilo- prefix can be combined with the unit metre to form "kilometre". Every decimal prefix denotes a specific power of 10 and has a name and a symbol, as shown in the following table:. To denote the submultiples of the units of measure, there are also other SI prefixes with a negative power of 10, such as milli- , micro- , nano- , etc. All the prefixes shown in the previous table are written in the upper-case form except the "k".

In SI the "K" symbol represent the kelvin, a unit of temperature. Even though it's unlikely that the "K" used as kelvin and the "K" improperly used as kilo- might be confused, the latter is wrong. About 40 years ago, when they started to use this notation, they all knew that the term kilobyte was intended as bytes and there was no confusion, but when laymen and other specialists such as scientists and engineers started to use computers, they weren't aware of this difference.

Moreover, these decimal prefixes are sometimes used with their original meaning even in computing. There was the need of a different set of binary prefixes to resolve this ambiguity.

On page 23 of the 7 th edition of the SI brochure , published in , there is a marginal note that, referring to the decimal prefixes, says:. They should not be used to indicate powers of 2 for example, one kilobit represents bits and not bits. Letter symbols to be used in electrical technology specifically in Part 2: In the following table are listed all the binary prefixes defined in these standards:.

The names of the new prefixes are formed adding the letters "bi" for binary after the first two letters of the corresponding SI prefix e. Their symbols are formed adding a "i" to the SI symbol e.

Note that, for consistency with the others, the simbol for kibi- is "Ki" and not "ki". With these prefixes is thus possible to indicate binary multipliers and preserve the decimal meaning of the SI prefixes, avoiding ambiguity.

A common mistake is to think that the correct thing to do now that the binary prefixes have their own symbols, is to just use them everywhere. Even thought using the right binary prefix is certantly better than misusing the decimal ones, there's no real reasons to use binary prefixes in most of the cases. Working with powers of 10 is easier, therefore , if the quantities we are dealing are not exact powers of 2, decimal powers should be preferred. Let's see a few examples of quantities that should be indicated using decimal and binary prefixes:.

File sizes are probably the quantities that are most frequently found while working with PCs. File sizes are not powers of 2. For example, this document is now bytes, and it's easier to express this as With decimal prefixes it's also a lot easier to add and subtract values with different prefixes. For example assume that we have a 4.

Let's do the same calculation again, but assuming that the sizes of the files are instead expressed with binary prefixes. The sizes are expressed with binary prefixes so it's more difficult to convert them to MiB: Our DVD uses decimal prefixes and its size is 4. After several conversion we finally found out that the exact size of all the files is 5. Even though it's now clear how using decimal prefixes greatly simplifies calculations, several applications still prefers to use binary prefixes.

The main reason is that decimal prefixes were and are often misused e. Using MiB avoids ambiguity and clarifies that the quantity is equal to 1 bytes, but on the other hand it makes the calculations more difficult. A better approach would be to use decimal prefixes with their correct meaning of course , and possibly specify the exact size in bytes or add a note to clarify that the application is using decimal prefixes. As noted by the IT specialist, the difference between 1 kB bytes and 1 KiB bytes is not so much, but it grows with the larger prefixes.

This table and graph show the differences between decimal and binary prefixes. For example, 1 GB is equal to 0. The following table and graph, instead, show the differences between binary and decimal prefixes. For example, 1 GiB is equal to 1.

Finally, this table combines the two previous tables and summarizes the differences between the prefixes, showing their exact value in bytes.

As we said at the beginning of this paragraph, the difference between 1 kB and 1 KiB is only 24 bytes, but between 1 TB and 1 TiB is about Between a YB and a YiB is even greater: It's quite clear that the difference will keep increasing as long as the technology will evolve, and that small errors will become huge. Nowadays we already use gigabytes and terabytes and these differences are already noticeable.

We will now analize how these prefixes are used to specify the size of mass-storage devices, memories and the speed of processors. The size of the hard disks is probably one of the well-known cases where the differences between the prefixes leads to confusion. Due to the high number of bytes that a modern hard disk can store, it's easy to see the divergence between what you read on the package and what your operative system may see.

If you buy a GB hard disk you will probably note that some operative systems e. Actually those 35 GB are not disappeared, the size of the hard disk is really GB and the OS can see all the bytes, but since it misuses the decimal "GB" with binary meaning instead of using "GiB" the two values appear to be different.

The hard disks manufacturers usually use the SI decimal prefixes and thus they correctly state the capacity of the disks in giga or tera bytes. We want to know how many GiB are bytes, so: Their size is supposed to be 1. A floppy can store bytes per sector and it has 2 sides divided in 80 tracks where each track has 18 sectors.

Once again math can help us:. The size of a floppy, in bytes, is: If we divide this value with the value of the "third MB" we obtain: Actually, its real size in MB and MiB is: We also said that its size is 1 KiB: Once again the real size of the floppy is not the one that the OS may see. In this case is not only due to the use of the prefixes.

For example, Windows detected only 1. This happen with other storage devices too, but the number of non-detected bytes compared with the overall size of the devices is usually fairly small. The size of flash drives e. Althought these values are powers of two, the prefixes they use are decimal , so a MB and a 4 GB USB flash drive can store respectively roughly and 4 bytes.

Since the CPU registers responsible for addressing memory follow a binary logic, they can address a number of bytes in the RAM equal to a power of two. The aforementioned is also applicable to the memory of video cards and other similar types of memory. Since there is no reason to use binary prefixes in this situation, only the decimal prefixes are used. For example, a CPU with a frequence of 2 GHz will be able to do 2 cycles in a second one hertz is equal to one cycle per second.

On the other hand, all the size of registers as well as the cache memory are based on powers on two, so they use binary prefixes.

Windows uses decimal prefixes MB, GB, It doesn't seem aware of the existence of binary prefixes, even though some third-party applications e. FileZilla might use them. It also seems that the size shown by Windows is truncated instead of rounded e. There are errors even in the documentation, for instance, in the article Determining Actual [Floppy] Disk Size there's written: Although its size has been popularly called 1.

We have seen that the size of a floppy is 1. Linux The kernel use the prefixes correctly but other applications might follow different conventions. For instance, dd can understand both the decimal and the binary prefixes:. In the output we can see that it has copied exactly 20 bytes. We can finally summarize what we saw in the article and give some suggestions and guidelines: Prefixes are used to specify multiples and submultiples of a unit.

The decimal prefixes are based on powers of The decimal prefixes are: The binary prefixes are based on powers of 2. The binary prefixes are: The symbol for the "kilo-" prefix is the lowercase 'k-'. The 'K-' prefix is not part of any standard and it shouldn't be used. Decimal prefixes should be used in most of the cases. In the few cases where the values measured are powers of two, binary prefixes should be used.

Binary and Decimal prefixes This article explains what decimal and binary prefixes are, when they should be used, what are the differences between them and how they are used with hardware and software. Every decimal prefix denotes a specific power of 10 and has a name and a symbol, as shown in the following table: The "k" case All the prefixes shown in the previous table are written in the upper-case form except the "k".

Graph 1 - Differences between decimal and binary prefixes. Graph 1 - Differences between binary and decimal prefixes.