Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Reading hexadecimal numbers out loud

Reading hexadecimal numbers out loud

Scheduled Pinned Locked Moved The Lounge
helpquestionlearning
31 Posts 15 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • L Lost User

    How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

    OriginalGriffO Offline
    OriginalGriffO Offline
    OriginalGriff
    wrote on last edited by
    #2

    Personally I think of it as 8H7 or 8 x 167 : similar to 8E7 for decimal is 8 x 107 But I don't know anyone else who does. :-D

    Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

    "I have no idea what I did, but I'm taking full credit for it." - ThisOldTony
    "Common sense is so rare these days, it should be classified as a super power" - Random T-shirt

    L 1 Reply Last reply
    0
    • L Lost User

      How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

      G Offline
      G Offline
      Gary R Wheeler
      wrote on last edited by
      #3

      0x80000000: "Zero X Eight followed by seven zero's" 0x8A2D35CB: "Zero X Eight A two D three five C B" And yes, I do pronounce the "0x". Since I do user interfaces, half the time I'm talking to users, and the other I'm talking to the yahoos I front for. Adding the "0x" prefix helps keep things unambiguous.

      Software Zen: delete this;

      T B 2 Replies Last reply
      0
      • OriginalGriffO OriginalGriff

        Personally I think of it as 8H7 or 8 x 167 : similar to 8E7 for decimal is 8 x 107 But I don't know anyone else who does. :-D

        Ideological Purity is no substitute for being able to stick your thumb down a pipe to stop the water

        L Offline
        L Offline
        Lost User
        wrote on last edited by
        #4

        I'll steal that. But that doesn't really help for numbers with more set bits, especially not if they're in low positions.

        K 1 Reply Last reply
        0
        • L Lost User

          How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

          L Offline
          L Offline
          Luc Pattyn
          wrote on last edited by
          #5

          I don't want large numbers pronounced. They may appear in log files and the like, I only trust them when I see them, preferably in electronic form. I see no point in people reading them as they will be wrong most of the time anyway. Source code should be pronounceable, so identifiers need to be close to real words; and magic numbers and error codes should be symbolic constants, not just a bunch of digits. :)

          Luc Pattyn [My Articles] Nil Volentibus Arduum

          L 1 Reply Last reply
          0
          • L Lost User

            How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

            M Offline
            M Offline
            Maximilien
            wrote on last edited by
            #6

            I spell all the letters/numbers.

            Watched code never compiles.

            1 Reply Last reply
            0
            • L Luc Pattyn

              I don't want large numbers pronounced. They may appear in log files and the like, I only trust them when I see them, preferably in electronic form. I see no point in people reading them as they will be wrong most of the time anyway. Source code should be pronounceable, so identifiers need to be close to real words; and magic numbers and error codes should be symbolic constants, not just a bunch of digits. :)

              Luc Pattyn [My Articles] Nil Volentibus Arduum

              L Offline
              L Offline
              Lost User
              wrote on last edited by
              #7

              What do you do when they come up in a discussion then? Write them down?

              L 1 Reply Last reply
              0
              • L Lost User

                How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #8

                Generally I block it into pairs of nibbles, pairs of bytes etc. So fff8 could be triple-eff eight but 8ff8 would be eight-eff eff-eight rather than eight double-eff eight. Intuitively it helps highlight alignment errors when the listener hears the pattern break. If a byte is numeric then I speak it like it's in decimal unless my listener shows that they find that a problem then I switch to "seven five" rather than "seventy-five" 0x8000000 "oh ex eight and six zeroes." but I would consider tweaking the code to have an exact power of two nibbles. 0x08000000 "oh ex oh eight and six zeroes" when hand-writing, I use small spaces 0x8000 0000 0x7fff750a "oh ex seven-triple-eff seventy-five oh-a" 0x7ff75f0a "oh ex seven-eff eff-seven five-eff oh-a

                1 Reply Last reply
                0
                • L Lost User

                  How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

                  P Offline
                  P Offline
                  PIEBALDconsult
                  wrote on last edited by
                  #9

                  If you really must, then just say the digits.

                  1 Reply Last reply
                  0
                  • L Lost User

                    How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

                    B Offline
                    B Offline
                    BobJanova
                    wrote on last edited by
                    #10

                    I pair them up (since they always represent byte streams e.g. pairs of digits) so that would be 'hex oh-eight oh-oh oh-oh oh-oh'.

                    L J 2 Replies Last reply
                    0
                    • L Lost User

                      What do you do when they come up in a discussion then? Write them down?

                      L Offline
                      L Offline
                      Luc Pattyn
                      wrote on last edited by
                      #11

                      we don't discuss numbers, we discuss functionality, algorithms, and code, not data. So either the hex numbers are user data and off-topic, or they are programming constants and need to be symbolic with a meaningful and pronounceable name. BTW: when I have to write a hex literal, I make sure to provide a number of digits that is a power of 2 (and matches the data type). So 0x80 and 0x8000 and 0x80000000 can be fine; 0x800 and 0x8000000 never is OK. :)

                      Luc Pattyn [My Articles] Nil Volentibus Arduum

                      L 2 Replies Last reply
                      0
                      • L Luc Pattyn

                        we don't discuss numbers, we discuss functionality, algorithms, and code, not data. So either the hex numbers are user data and off-topic, or they are programming constants and need to be symbolic with a meaningful and pronounceable name. BTW: when I have to write a hex literal, I make sure to provide a number of digits that is a power of 2 (and matches the data type). So 0x80 and 0x8000 and 0x80000000 can be fine; 0x800 and 0x8000000 never is OK. :)

                        Luc Pattyn [My Articles] Nil Volentibus Arduum

                        L Offline
                        L Offline
                        Lost User
                        wrote on last edited by
                        #12

                        Right, but in order to give it a meaningful and pronounceable name, you must first communicate the number itself somehow.

                        L 1 Reply Last reply
                        0
                        • L Lost User

                          Right, but in order to give it a meaningful and pronounceable name, you must first communicate the number itself somehow.

                          L Offline
                          L Offline
                          Luc Pattyn
                          wrote on last edited by
                          #13

                          that would be in a class, a type, a header file, depending on the language. And it would not be orally, it would always be in a file, a compiler-readable one at best, a document otherwise. The only thing I might consider communicating orally about it (i.e. before the electronic version exists) is the symbolic name. :)

                          Luc Pattyn [My Articles] Nil Volentibus Arduum

                          L 1 Reply Last reply
                          0
                          • L Luc Pattyn

                            that would be in a class, a type, a header file, depending on the language. And it would not be orally, it would always be in a file, a compiler-readable one at best, a document otherwise. The only thing I might consider communicating orally about it (i.e. before the electronic version exists) is the symbolic name. :)

                            Luc Pattyn [My Articles] Nil Volentibus Arduum

                            L Offline
                            L Offline
                            Lost User
                            wrote on last edited by
                            #14

                            I'm afraid that doesn't work for me. I (semi)often find myself in the position of trying to explain an algorithm to someone in real life, in a setting where no non-oral means of communication is easily available.

                            L 1 Reply Last reply
                            0
                            • L Lost User

                              I'm afraid that doesn't work for me. I (semi)often find myself in the position of trying to explain an algorithm to someone in real life, in a setting where no non-oral means of communication is easily available.

                              L Offline
                              L Offline
                              Luc Pattyn
                              wrote on last edited by
                              #15

                              Hmm. I'd use really small numeric values (think 0x00 thru 0xFF) as examples if I had to, and nothing fancier. And carry issues would be explained at a nibble level, not a byte level, as hex notation is nibblish. :)

                              Luc Pattyn [My Articles] Nil Volentibus Arduum

                              1 Reply Last reply
                              0
                              • L Luc Pattyn

                                we don't discuss numbers, we discuss functionality, algorithms, and code, not data. So either the hex numbers are user data and off-topic, or they are programming constants and need to be symbolic with a meaningful and pronounceable name. BTW: when I have to write a hex literal, I make sure to provide a number of digits that is a power of 2 (and matches the data type). So 0x80 and 0x8000 and 0x80000000 can be fine; 0x800 and 0x8000000 never is OK. :)

                                Luc Pattyn [My Articles] Nil Volentibus Arduum

                                L Offline
                                L Offline
                                Lost User
                                wrote on last edited by
                                #16

                                Luc Pattyn wrote:

                                So either the hex numbers are user data and off-topic, or they are programming constants and need to be symbolic with a meaningful and pronounceable name.

                                What do you mean, constants and names? Real computers have a hex keyboard and then you can just hack them in, byte by byte. Nothing hard or confusing about having to keep two hex digits in mind at a time. :) Edit: The original version of my old computer still had switches, but entering binary really was a pain. A hex keyboard was a real improvement.

                                At least artificial intelligence already is superior to natural stupidity

                                1 Reply Last reply
                                0
                                • B BobJanova

                                  I pair them up (since they always represent byte streams e.g. pairs of digits) so that would be 'hex oh-eight oh-oh oh-oh oh-oh'.

                                  L Offline
                                  L Offline
                                  Lost User
                                  wrote on last edited by
                                  #17

                                  I have spent too much time with a hex keyboard to do anything else. At least there is no great discussion about coding conventions when you enter machine code directly :)

                                  At least artificial intelligence already is superior to natural stupidity

                                  1 Reply Last reply
                                  0
                                  • L Lost User

                                    How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

                                    S Offline
                                    S Offline
                                    Stefan_Lang
                                    wrote on last edited by
                                    #18

                                    I rarely ever see the need to pronounce a hex number out loud, and if I do, I either read digit by digit (including the 0x prefix), or lend shortcuts from military style* for repeated occurences of '0', e. g. a sequence of '200' would be "two hundred". I usually only do that with '0' at the end, but there's no reason not to apply it mid-word as well. If your point is to introduce a way of pronouncing hex numbers in a similar way to decimal number shortcuts, maybe you should look at what's there already: e. g. we already have 'double words' (4 bytes) split into a 'high word' and a 'low word', so you might want to pronounce '0x082A3BC8' as "082A high 3BC8 low". * Note that military style reading also pronounces 6 o'clock as "six hundred" (at least that's what I've been taught), so here we already have a precedence where "hundred" equates just a sequence of '0' rather than the value, 100.

                                    1 Reply Last reply
                                    0
                                    • B BobJanova

                                      I pair them up (since they always represent byte streams e.g. pairs of digits) so that would be 'hex oh-eight oh-oh oh-oh oh-oh'.

                                      J Offline
                                      J Offline
                                      jsc42
                                      wrote on last edited by
                                      #19

                                      I, too, pair them but I do not use 'oh' (that is a letter or an octal prefix). Zero is two syllables, so I use nought (tends to end up sounding like nor or norg). This prevents you having ambiguities like in 'Pensylvannia 6-5-Oh-Oh-Oh' which in the UK would be understood as 65000 but in the US could be 65000 or 65OOO (which is 65666). Like other respondents, I'd only expect 2, 4 or 8 digits (prepending with zeros as required). So, I'd end up with hex norg-eight nor-norg nor-norg nor-norg. Writing it down as I say it out loud has shown that I use the 'norg' form before a vowel (like the difference between 'a' and 'an') and before a gap. Listening back to myself, 'nor-norg' sounds a bit like 'knock-knock', which might explain why some wags keep asking "Who's there?". If dictating (e.g. for reading back license keys with full alphabets) with non- / semi- IT literate people, I'd add -er to numbers, e.g. niner sixer aye bee cee fiver fourer. If dicating to more literate users, I'd use numbers without -ers (would they be called 'numb's?) and use the phonetic radio code for letters (not 'lett's), e.g. Charlie-0ne Nine-Bravo Alpha-Six Two-Delta. Note: For MS license keys, I would read out in batches of 5 alphamerics so that the spoken pattern matches the key layout. Most folks can remember 5 alphanumerics long enough to check them; but only in a max of threes for longer term storage (except for telephone numbers where you can use natural breaks)

                                      1 Reply Last reply
                                      0
                                      • G Gary R Wheeler

                                        0x80000000: "Zero X Eight followed by seven zero's" 0x8A2D35CB: "Zero X Eight A two D three five C B" And yes, I do pronounce the "0x". Since I do user interfaces, half the time I'm talking to users, and the other I'm talking to the yahoos I front for. Adding the "0x" prefix helps keep things unambiguous.

                                        Software Zen: delete this;

                                        T Offline
                                        T Offline
                                        Tyler Elric
                                        wrote on last edited by
                                        #20

                                        Same here, except I say "OH-EX" and then the numbers/letters. :D :-D :laugh:

                                        1 Reply Last reply
                                        0
                                        • L Lost User

                                          How do you do it? For small or commonly used numbers it isn't really a problem, but I haven't really found an "obviously good" way. Just reading out the numbers one by one gets confusing for something like 0x8000000 (which is a zero "too short") and it doesn't convey the approximate magnitude until you've had the last digit. Reading it as "8 million" isn't ideal either (though that way kind of works when there are letters in the number), and actually converting to decimal doesn't work at all - 134217728 probably doesn't ring a bell with many people. Of course pronouncing it as 1<<27 works, but for most numbers there are no "shortcuts" like that.

                                          R Offline
                                          R Offline
                                          Rich D
                                          wrote on last edited by
                                          #21

                                          How would you pronounce 0x400 ? Would you say 1K, even though it is 1024 decimal? Would 0x1000 be 4K? 0x4000, 16K and 0x10000, 64K? If so, then 0x100000 might be pronounce as 1 Meg and 0x8000000 would be 128 Meg. Just a thought.

                                          L 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups