It's been pointed out that you are looking at machine code, not source code. Source code is meant for humans to read and write. In a compiled language like C or C++, the source program is converted once to a binary form (machine code) that the computer can directly execute.
"Hex" (hexadecimal) and octal are notations used primarily as a shorthand notation for binary numbers. Each digit represents a group of bits (4 for hex, 3 for octal). The digital electronic circuitry inside the computer is all binary, though.
"Why binary?" is because of that electronic circuitry. The simplest circuits or components that can actually change states at all have just two states: on or off for a switch, current or no current for a wire, charged or not charged for a capacitor.
Simplicity tends to mean fewer components, reduced cost, reduced power, greater reliability and usually faster operation. There's no reason to sacrifice all that so a human can read code that humans rarely need to read.
Interpreted language like JavaScript, PHP or Python, and markup languages like HTML, CSS or XML, tend to have source code frequently modified or even generated by another program (as with PHP) so the expensive step of converting whole programs to binary machine code is skipped.
Maybe the source code is executed directly, maybe it's converted to a tokenized "byte code" version of the source program for execution, but something very close to the source code is executed. (In most BASIC interpreters, even the "comments" are executed, for example.)
There are "reverse engineering" tools for compiled binary programs in many cases, but they typically produce assembly source code, and can't supply meaningful names for most variables and functions. The result is only slightly more readable than that binary-treated-as-ASCII output you see on the screen. They certainly can't provide meaningful comments.
Commercial code is often even more obfuscated, using various "copy protection" methods to discourage unauthorized copying of the software, or to make it more difficult to attach malware into downloaded code, or to introduce "cheats" into an online game client. Things like that. There may be multiple levels of encryption, with some part of the key information retrieved from a server on the Net.
For almost all legitimate purposes, it's easier (and more rewarding, I think) to write code that does what you want than to reverse-engineer someone else's binary code that does the same thing.