The Hex For Mac



Imagine... you have a binary file and don't know its contents. Or some software creates binary files you have a specification for but don't want to decode them manually.

Have you ever looked at hex dumps and felt how hard it is to make sense of it? And to remember the meaning of all the bits and bytes?

Pull down that menu; Unicode Hex Input will now be one of the choices. Choosing the Unicode Hex Input method alters the behaviour of the “option” key. To place U+03B1 into your document, hold down the option key and – while holding it down – tap the four keys 0, 3, b, and 1 in sequence. Hex Editor for Mac Additionally Synalyze It! Is a full-featured Hex Editor for Mac OS X allowing you to edit files of unlimited size and interpret the bytes with dozens of text encodings. Essentially it’s a modeling tool for arbitrary file formats that is being used by software developers and data stream experts as well as in computer forensics. Identify current uses of hexadecimal numbers in computing, such as defining colours in Hypertext Markup Language (HTML), Media Access Control (MAC) addresses, assembly languages and machine code.

Synalyze It! allows you to create a “grammar“ for your binary files interactively. Unlike in regular hex editors or viewers the files are interpreted automatically for you! Analysis of binary files has never been easier.

Additionally Synalyze It! is a full-featured Hex Editor for Mac OS X allowing you to edit files of unlimited size and interpret the bytes with dozens of text encodings.


Essentially its a modeling tool for arbitrary file formats that is being used by software developers and data stream experts as well as in computer forensics.

The grammars are stored as XML files and contain all the structures that may occur in a file of a certain format, just like XML schemas. Its even possible to inherit structures from others (like in OO languages) so you don't have to repeat for example a length field that appears at the beginning of each structure.


Synalyze It! is an extremely flexible and useful tool for viewing binary file data. It enables you to easily apply a structured format to your file bytes and convert them into meaningful displays of data.


Synalyze It! provides formatters for common binary types like ICC, PNG, TIFF, WAV, ZIP and dozens more. That alone is useful but, if you’re a programmer creating a custom binary file format, Synalyze It! is priceless.
With Synalyze It!, you can create custom data formatters for your personal binary files. Instead of struggling with cryptic lines of hexadecimal, you can view and label data values as floating point or integer, signed or unsigned, with any byte length. Your files can even modify the formatting, allowing you to create settings on the fly to variably view your data.
If the standard formatting tools are not enough, you can write formatting scripts using Python or Lua. I quickly got ambitious and was soon in over my head exploring Synalyze It!’s features. When I emailed a question to the developer, the technical support was outstanding. I was sent a complete solution to my problem that also served as an advanced Synalyze It! tutorial.
I doubt that I will ever fully exploit the potential of Synalyze It! but the value I’ve received is already many multiples of the price I paid.

John Goodman


For some well-known formats you can download grammars here. Matching grammars are suggested automatically when you open a file.

Right now you can download Synalyze It! for Mac OS X and give it a try. In case of questions or problems please give me feedback. The latest changes can be tracked here; stay tuned also on Twitter.



If you like Synalyze It! consider buying the Pro version in the Mac App Store.
The Pro version has even more useful features beyond hex editing.

Hi,

I just bought the pro version of Synalyze, and I am very glad I did. Thank you for taking the time to bring this excellent tool to life.
I’m the author of an open-source program called SleepyHead, which is used for reviewing CPAP machine data (used in Sleep Apnea treatment), and already I’m wishing I discovered Synalyze a lot sooner, as an awful lot of binary format hacking is involved thanks to the manufacturers not releasing documentation.
I particularly like being able to use expressions in the length fields.. I spent ages looking through the example grammar and scripts only to find I didn’t even need them thanks to this feature. (It pays to read the manual first.. ;)
Keep up the good work!
Regards
Mark Watkins


Mac Hex Editor for Professionals

There are some hex editors for Mac available but only Synalyze It! allows to create a grammar for automatic file decoding in a specialized grammar editor.

  1. Simply open the file you want to analyze
  2. Create an empty grammar
  3. Select bytes in the hex editor and add an element or structure to the grammar using the context menu
  4. Enhance the grammar in the grammar editor


Other special features of Synalyze It!:

  • Supports various encodings like ASCII, EBCDIC, UTF-8 or UTF-16 (see ICU for all supported encodings)
  • Lets you easily see if a file is compressed with the histogram view
  • Opens even huge files ultra fast by loading only the visible part of a file
  • Hex editing works with the same mouse and keyboard commands like in common text editors

The Hex For Mac Keyboard

In case you need a tool specialized in disk editing, I recommend to check out iBored.


Recent updates:

2020-01-05: Added grammar for Commander Keen 1-3 saved games
2019-09-13: Version 1.23 released with dark mode support
2019-05-16: Added grammar for Ducati Data Analyzer dda files (thank you, Jack!)
2019-02-17: Added grammar for Atari Lynx .lnx files (thank you, Brian!)
2019-02-14: Added grammar for uImage files on Linux (thank you, Lukas!)

Older additions to the web site can be found here…


To use this binary to hex conversion tool, you must type a binary value like 11011011 into the left field below and hit the Convert button. The converter will give you the hexadecimal (base-16) equivalent of the given value.

Binary to hex conversion result in base numbers

Binary System

The binary numeral system uses the number 2 as its base (radix). As a base-2 numeral system, it consists of only two numbers: 0 and 1.

The Hex For Mac

While it has been applied in ancient Egypt, China and India for different purposes, the binary system has become the language of electronics and computers in the modern world. This is the most efficient system to detect an electric signal’s off (0) and on (1) state. It is also the basis for binary code that is used to compose data in computer-based machines. Even the digital text that you are reading right now consists of binary numbers.

Reading a binary number is easier than it looks: This is a positional system; therefore, every digit in a binary number is raised to the powers of 2, starting from the rightmost with 20. In the binary system, each binary digit refers to 1 bit.

Hexadecimal System (Hex System)

The hexadecimal system (shortly hex), uses the number 16 as its base (radix). As a base-16 numeral system, it uses 16 symbols. These are the 10 decimal digits (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) and the first six letters of the English alphabet (A, B, C, D, E, F). The letters are used because of the need to represent the values 10, 11, 12, 13, 14 and 15 each in one single symbol.

Hex is used in mathematics and information technologies as a more friendly way to represent binary numbers. Each hex digit represents four binary digits; therefore, hex is a language to write binary in an abbreviated form.

Four binary digits (also called nibbles) make up half a byte. This means one byte can carry binary values from 0000 0000 to 1111 1111. In hex, these can be represented in a friendlier fashion, ranging from 00 to FF.

In html programming, colors can be represented by a 6-digit hexadecimal number: FFFFFF represents white whereas 000000 represents black.

How to Convert Binary to Hex

Converting from binary to hex is easy since hexadecimal numbers are simplified versions of binary strings. You just need to remember that each hex digit represents four binary digits. It follows that four binary digits will be equal to one hex digit. The method is easier than it sounds but it’s always useful to use a binary to hex conversion chart to save time.

Step 1: Write down the binary number and group the digits (0’s and 1’s) in sets of four. Start doing this from the right. If the leftmost group doesn’t have enough digits to make up a set of four, add extra 0’s to make a group.

Step 2: Write 8, 4, 2 and 1 below each group. These are the weights of the positions or place holders in the number (23, 22, 21 and 20).

Step 3: Every group of four in binary will give you one digit in hexadecimal. Multiply the 8, 4, 2 and 1’s by the digit above.

Step 4: Add the products within each set of four. Write the sums below the groups they belong to.

Step 5: The digits you get from the sums in each group will give you the hexadecimal number, from left to right.


Now, let’s apply these steps to, for example, the binary number (10101010)2

Step 1: 10101010 has eight digits and therefore can be grouped in sets of four without adding 0’s.
Think of the number as (1010)(1010)

Step 2: Write 8, 4, 2 and 1 below each group.

10101010

84218421

Step 3: Multiply the 8, 4, 2 and 1’s with the digit above.

10101010

84218421

80208020

Step 4: Add the products within each set of four.

In the first group, 8 + 2 = 10

In the second group, 8 + 2 = 10

Write these digits below the groups they belong to.

10101010

84218421

80208020

1010

Step 5: Notice that, in order to represent values above 9, letters will be used. 10 is represented as the letter A in the hexadecimal system. Therefore, (10101010)2 = (AA)16


Binary to Hex Conversion Examples

Example 1: (10001110)2 = (8E)16


Example 2: (111011.111)2 = (3B.E)16

(Notice that this binary number has a decimal point and cannot be automatically grouped in sets of four. You need to add 0’s both the leftmost and the rightmost parts.)

00111011.1110

842184218421

002180218420

311.14

3 B. E

Binary to Hexadecimal Conversion Chart

The following binary to hexadecimal conversion chart shows which four binary digits are equivalent to which hex symbol:

BinaryHexadecimal
000000011
000000102
000000113
000001004
000001015
000001106
000001117
000010008
000010019
00001010A
00001011B
00001100C
00001101D
00001110E
00001111F
0001000010
0001000111
0001001012
0001001113
0001010014
0001010115
0001011016
0001011117
0001100018
0001100119
000110101A
000110111B
000111001C
000111011D
000111101E
000111111F
0010000020
0010000121
0010001022
0010001123
0010010024
0010010125
0010011026
0010011127
0010100028
0010100129
001010102A
001010112B
001011002C
001011012D
001011102E
001011112F
0011000030
0011000131
0011001032
0011001133
0011010034
0011010135
0011011036
0011011137
0011100038
0011100139
001110103A
001110113B
001111003C
001111013D
001111103E
001111113F
0100000040
BinaryHexadecimal
0100000141
0100001042
0100001143
0100010044
0100010145
0100011046
0100011147
0100100048
0100100149
010010104A
010010114B
010011004C
010011014D
010011104E
010011114F
0101000050
0101000151
0101001052
0101001153
0101010054
0101010155
0101011056
0101011157
0101100058
0101100159
010110105A
010110115B
010111005C
010111015D
010111105E
010111115F
0110000060
0110000161
0110001062
0110001163
0110010064
0110010165
0110011066
0110011167
0110100068
0110100169
011010106A
011010116B
011011006C
011011016D
011011106E
011011116F
0111000070
0111000171
0111001072
0111001173
0111010074
0111010175
0111011076
0111011177
0111100078
0111100179
011110107A
011110117B
011111007C
011111017D
011111107E
011111117F
1000000080

The Hex For Mac Shortcut

BinaryHexadecimal
1000000181
1000001082
1000001183
1000010084
1000010185
1000011086
1000011187
1000100088
1000100189
100010108A
100010118B
100011008C
100011018D
100011108E
100011118F
1001000090
1001000191
1001001092
1001001193
1001010094
1001010195
1001011096
1001011197
1001100098
1001100199
100110109A
100110119B
100111009C
100111019D
100111109E
100111119F
10100000A0
10100001A1
10100010A2
10100011A3
10100100A4
10100101A5
10100110A6
10100111A7
10101000A8
10101001A9
10101010AA
10101011AB
10101100AC
10101101AD
10101110AE
10101111AF
10110000B0
10110001B1
10110010B2
10110011B3
10110100B4
10110101B5
10110110B6
10110111B7
10111000B8
10111001B9
10111010BA
10111011BB
10111100BC
10111101BD
10111110BE
10111111BF
11000000C0
BinaryHexadecimal
11000001C1
11000010C2
11000011C3
11000100C4
11000101C5
11000110C6
11000111C7
11001000C8
11001001C9
11001010CA
11001011CB
11001100CC
11001101CD
11001110CE
11001111CF
11010000D0
11010001D1
11010010D2
11010011D3
11010100D4
11010101D5
11010110D6
11010111D7
11011000D8
11011001D9
11011010DA
11011011DB
11011100DC
11011101DD
11011110DE
11011111DF
11100000E0
11100001E1
11100010E2
11100011E3
11100100E4
11100101E5
11100110E6
11100111E7
11101000E8
11101001E9
11101010EA
11101011EB
11101100EC
11101101ED
11101110EE
11101111EF
11110000F0
11110001F1
11110010F2
11110011F3
11110100F4
11110101F5
11110110F6
11110111F7
11111000F8
11111001F9
11111010FA
11111011FB
11111100FC
11111101FD
11111110FE
11111111FF