If SHA256 produces an alphanumeric hash, how can a hash be "less than a certain value"? I was under the impression that Bitcoin's method for validating a hash involved making sure the hash started with a pre-determined number of zeroes.  However, after reading the docs here, I see the following sentence:


  To prove you did some extra work to create a block, you must create a
  hash of the block header which does not exceed a certain value.  To
  prove you did some extra work to create a block, you must create a
  hash of the block header which does not exceed a certain value. For
  example, if the maximum possible hash value is 2^256 − 1, you can prove
  that you tried up to two combinations by producing a hash value less
  than 2^255.


This is confusing to me, since according to my research the Bitcoin protocol uses the SHA256 hashing algorithm, which produces alphanumeric hashes.  For instance, when I hash an empty file named "foobar.txt", I get "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855".

My question is, how can one alphanumeric hash output be "less than" another?
Not that other answers are wrong here, but just to approach your confusion from another angle:


  SHA256 hashing algorithm, which produces alphanumeric hashes.


That's not true. The hashing algorithm produces a stream of bytes. Only when you display that bunch of bytes on your screen it's common for it to be in hexadecimal (containing "alphanumeric" characters A to F) but that's just for display purposes to make it human-readable.

You may as well display that same bytes as a large decimal number (requires more screen space and doesn't have the advantage that each two digits represent exactly one byte from the original. Or you could display it in binary: 256 zeroes and ones.


  My question is, how can one alphanumeric hash output be "less than" another?


Even disregarding the above, what stops you from sorting a list of words alphabetically? One word will be "less than" another word.