These values are obviously bad. It's not the first time I see this. The
cause is still unclear. As you see, the values are all very close to
multiples of 1000. So the resolution of the time measurement on your
machine is around 1 ms. It should be at least 100 microseconds to be
useful. Maybe you could try rebuilding your kernel with e.g power saving
options turned off so we find out what is causing this effect.

[...]
> And the question is, how does one get from raw codes to hex codes?

If the measurements were good, irrecord would not have created a raw codes
file in the first place.