## Hexadecimal: what for?

The way digital devices store data is quite simple to explain. From the point of view of physics, a digital unit, known as a ‘bit’, derives from either of two states – electrical current ‘on’ or ‘off’. Binary system (base two) is the best of any other numerical systems to denote digital values. Binary means “composed of two elements” and, in this case, two symbols 0 (‘off’) and 1 (‘on’). Minimal unit addressable by computer is a byte. Each byte consists of eight bits (eight consequent either ‘on’ or ‘off’ switches). One byte can be any number from 0 to 255 (decimal) or from 00000000 to 11111111 (binary). Binary system gives maximum representation of digital data, as actually stored inside the computer. But, it is too massive for mathematical operations and computing. Just imagine two bytes already make 16-symbols-long string (e.g. 1011011101001000). |

Why not decimal?

The system, we have long got used to in day-to-day calculations, is called decimal. It is based on ten symbols from 0 through 9 to denote its values. Binary to decimal values are easily convertible using any special calculator. But, do you need the conversion if your task is to analyze or edit the data inside the storage?

Hexadecimal dotted all ‘i’s

Hexadecimal system is based on 16 symbols: 0 – 9 in numbers and A-F in letters (10-15). One hexadecimal digit has 4 bits behind, two hexadecimal digits is already a byte (8 bits). Compare, the mentioned above byte range is from 0 to 256 (decimal), from 00000000 to 11111111 (binary) and 00 to FF (hexadecimal). Thus, with maximum closeness to binary system and its compactness hexadecimal system offers clear data layout.

How to handle raw binary data

To work with the whole range of data in hexadecimal you need a special software tool. CI Hex Viewer is a software application that gives logical representation of physical data layout and possibility to edit raw data.

Hexadecimal field is easy to understand. The leftmost pane is an address pane. It gives a pointer to the first byte in line. Next goes hexadecimal data pane. Commonly, it contains 16 bytes in line – from 0 to F. The crossing of address pane and hexadecimal pane gives us a byte offset. The right pane here is a text representation of hexadecimal data. You can select the necessary one from more than twenty variants in the list at the bottom. Hexadecimal and text representations are synchronous: with the cursor in either of them, the cursor locates in the other one concurrently. CI Hex viewer allows editing data in either of the panels – whether you need hexadecimal or text editing.

What makes a hexadecimal notation useful besides compact and human-readable view is its versatility. A hexadecimal digit means anything from a simple text letter to a color in a picture or a function in a program. How the raw data is represented to a user, is a matter of its format. That’s exactly the format that makes correct data editing possible. Before you start making any changes, you should know exactly how the data is organized and what hexadecimal values denote.

Summary:

Hexadecimal representation is the most convenient and the simplest numerical system for work with the raw data. An easy-to-understand Viewer with functions for both viewing and editing will be an irreplaceable assistant when dealing with the hexadecimal data.