Trying to respond superficially. This is a file in a certain format, just like there are database formats, texts, spreadsheets, images, etc. This is a format that the operating system recognizes and knows what to do with the content inside. It contains instructions on how to put relevant content into memory. There are instructions and static data of the application. One can understand this as a "text" that some component will know how to deal with. It is not pure text because it allows extra characters that are not present in texts, so it is called a binary.
The operating system will tell the processor to execute the instructions there (within its scheduling system) and the processor will then "interpret" those characters to decide what to do inside it.
Some architectures have fixed-length and other instructions of variable size. Each character or character set indicates which instruction should be executed and that "operands" will be used in this operation. The processor will process the bits of these operands (if any) or some register or something previously defined by the instruction. Then it goes to the next instruction - eventually one instruction can change which is next. On most operating systems this occurs until a previously defined signaling is returned to the operating system.
This can best be seen in How does a computer understand binary code? .
Well, it's a lot more complex than that, but I'm getting longer. The important thing is that each character indicates something that the processor knows what to do. In the background the characters are numbers according to the ASCII table - it is shown this way because it can facilitate the reading in something that is being interpreted like a common text (after all a text editor was used), it is possible to see of other forms, it gives even to see the bits of them, each one chooses how he wants to visualize.
A code written in high level language can be compiled to generate this, or a code in Assembly can be assembled. There is a 1: 1 direct relationship between the Assembly statements and these characters. Therefore the machine code can be easily converted to the approximate gross assembly that generated it (far from being readable) by a disassembler . . The Assembly is an "easier" code for a human to read - including because it has comments, machine code is easier for the computer.
A suitable utility for viewing binary code is objdump
or dumpbin
.
The links in the comments help to give a better idea of the subject.