IntegerString is the equivalent of hex() in python..
IntegerString[8192,16] -> "2000"
Not sure what you mean by "hex file", one doesnt normally write the ascii hex digits to a file, though you might want to look at a hex dump of your binary file and compare with the above for debugging purpose.
Worth a note, IntegerDigits gives a "BigEndian" representation, regardless of your native machine byte ordering (as does python's hex()), you may need to reverse order if you want to compare with a little endian file:
// addressing your comment "Integer32" gives you a 32 bit, or 8 byte binary representation
which can handle numbers larger than 2^16-1 (well 2^15-1 for signed integers). To "see" such in "hex" you use the same function, ie
IntegerString[2999999999,16] -> "b2d05dff"
You can verify python's hex() gives the same result. Note the 16 here is the base (hex) not the binary bit length. Indeed mathematica can handle arbitrarily large numbers so,
which would be ~360 bits in a binary (base 2) representation.
These things are worth understanding if you are dealing with large data sets, as binary file io is typically much faster than ascii based.