Addressing the "why" part of the question - from my point of view as an assembly-code programmer on PDP-11 and VAX, the "standard" radix is most usefully chosen to match the instruction layout.
PDP-11 had 8 registers and 8 operand-mode indicators. Its double-operand instruction layout was
1 bit generally byte/word indicator (b)
3 bits opcode (o)
3 bits ...
The when and why of use of hexadecimal over octal representation
is intimately tied in with where and what: the use of one over the
other depended greatly on environmental factors, as well as the
machine itself, with programmer preference mainly being developed by
the influence of these.
As Raffzahan points out, IBM 360 environments used hexadecimal
When and why
That is quite close tied to the IBM /360 and its introduction in 1964. The /360 is based on the use of an 8 bit byte, 32 bit word (16 bit half word) and 24 bit address. Thus all basic memory items were multiples of 8 bit units - which are, without any remainder, best be displayed in hex. In addition displaying bytes in hex correlates well with ...
Minicomputers and mainframes typically used octal, as many early mainframes had word sizes that were a multiple of 3 bits, and so did some minis. Operators and engineers within those environments became used to this, so even power-of-two word size minicomputers kept using octal.
Microcomputers, however, almost always had power-of-two word sizes for both ...
As others stated, of course this is related to word size on your machine.
I started learning higher programming languages on a WANG 2200T in 1977, and everything was hexadecimal there. My "Junior Computer" in 1980 was programmed in 6502 assembly, and everything was hexadecimal there as well. The first time I heard about octal notation was when I learned C ...