Numeric Bases
Binary arithmetic is the native language of the computer where the binary 0 and 1’s represent the on and off conditions of current flow. Humans are most comfortable with decimal arithmetic where the decimal digits 0 to 9 represent the number of fingers or toes on the human body. In order to have human interaction with computers it is frequently necessary to convert values back and forth from binary to decimal. Translating numeric values from a binary base, or radix, to a decimal base and back is a fundamental skill developed by most students of computer science. Intermediate bases such as hexadecimal and octal have also been popular. The octal base, or base 8, was favored by many IBM® programmers during the 1960’s but is seldom used today save for academic exercises. A hexadecimal value, or base 16, has become more popular because of the easy translation back and forth to binary values. Hexadecimal notation is easier to remember and shorter to write than long strings of 1’s and 0’s.
If you have programmed with assembly language or perhaps C/C++, then you are familiar with the need to convert from one base to another, specifically from binary, hexadecimal and decimal.
Base 16, or hexadecimal, uses the digits 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E and F
Base 10, or decimal, uses the digits 0,1,2,3,4,5,6,7,8 and 9
Base 2, or binary, uses the digits 0 and 1
The most frequently converted numbers are positive integers. The reason for this is the fact that the least significant on a data bus is either a 1 or a 0. There are no fractional values on a computer’s data bus. This means that only integers are sent across the data bus, and if you want to transmit “real” number values with fractional or decimal components other means must be employed. The “other means” typically requires that real numbers be encoded to appear as integers. (more information on this topic can be found in the IEEE 754 conversion standards).
All modern Macs® and PCs have 64-bit data paths. For accuracy and compatibility, base converter programs should work with 64-bit data sizes.
For hexadecimal numbers, a 64-bit data bus provides a range of positive values from:
0 to FFFFFFFFFFFFFFFF.
For decimal numbers, this bus provides a range of positive values from:
0 to 1844674407370955161510.
Finally, for binary numbers, this range of positive integers is from:
0 to 1111111111111111111111111111111111111111111111111111111111111111
The maximum value represented by a 64-bit data bus is a very large number. This value could easily hold the estimated count of the number of stars in our galaxy (300 billion) but falls short of holding the total estimated number of stars in the universe (at least 1 septillion). Is there a need for a larger data bus? Only time will tell!
However, if you want the hexadecimal and binary equivalents of 300 billion stars, well, this base converter is ready to provide those results easily and accurately.