How to read string as hex number in bash?2019 Community Moderator ElectionIn bash, how to convert 8 bytes to an unsigned int (64bit LE)?Bash: integer expression expected, using read/testHow to change bash prompt string in current bash session?How to convert an special hex character from an html page in bash?Loop over a string in zsh and BashModifying empty string variable inside switch statement in function bashExtract Complex String Inside Parentheses in Linux BashConstruct bash array with only string formatprintf escape %q string vs variableHow are ext4fs checksums being calculated?

Help with identifying unique aircraft over NE Pennsylvania

Why is "la Gestapo" feminine?

How can Newt cast Accio on a Niffler when it is only supposed to work on inanimate objects?

If I cast enlarge/reduce on an arrow, what weapon could it count as?

What is the tangent at a sharp point on a curve?

What are rules for concealing thieves tools (or items in general)?

Someone scrambled my calling sign- who am I?

What is the reasoning behind standardization (dividing by standard deviation)?

Why didn’t Eve recognize the little cockroach as a living organism?

CLI: Get information Ubuntu releases

Norwegian Refugee travel document

Can other pieces capture a threatening piece and prevent a checkmate?

How can I query the supported timezones in Apex?

Should I be concerned about student access to a test bank?

Why is indicated airspeed rather than ground speed used during the takeoff roll?

Extraneous elements in "Europe countries" list

Do I need an EFI partition for each 18.04 ubuntu I have on my HD?

Knife as defense against stray dogs

Friend wants my recommendation but I don't want to

Is VPN a layer 3 concept?

PTIJ: Which Dr. Seuss books should one obtain?

Why does Surtur say that Thor is Asgard's doom?

How do researchers send unsolicited emails asking for feedback on their works?

Homology of the fiber



How to read string as hex number in bash?



2019 Community Moderator ElectionIn bash, how to convert 8 bytes to an unsigned int (64bit LE)?Bash: integer expression expected, using read/testHow to change bash prompt string in current bash session?How to convert an special hex character from an html page in bash?Loop over a string in zsh and BashModifying empty string variable inside switch statement in function bashExtract Complex String Inside Parentheses in Linux BashConstruct bash array with only string formatprintf escape %q string vs variableHow are ext4fs checksums being calculated?










3















I have the bash line:



expr substr $SUPERBLOCK 64 8


Which is return to me string line:



00080000


I know that this is, actually, a 0x00080000 in little-endian. Is there a way to create integer-variable from it in bash in big-endian like 0x80000?










share|improve this question




























    3















    I have the bash line:



    expr substr $SUPERBLOCK 64 8


    Which is return to me string line:



    00080000


    I know that this is, actually, a 0x00080000 in little-endian. Is there a way to create integer-variable from it in bash in big-endian like 0x80000?










    share|improve this question


























      3












      3








      3








      I have the bash line:



      expr substr $SUPERBLOCK 64 8


      Which is return to me string line:



      00080000


      I know that this is, actually, a 0x00080000 in little-endian. Is there a way to create integer-variable from it in bash in big-endian like 0x80000?










      share|improve this question
















      I have the bash line:



      expr substr $SUPERBLOCK 64 8


      Which is return to me string line:



      00080000


      I know that this is, actually, a 0x00080000 in little-endian. Is there a way to create integer-variable from it in bash in big-endian like 0x80000?







      bash numeric-data hex expr






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited 3 hours ago









      Jesse_b

      13.7k23371




      13.7k23371










      asked 4 hours ago









      DenisNovacDenisNovac

      186




      186




















          1 Answer
          1






          active

          oldest

          votes


















          4














          Probably a better way to do this but I've come up with this solution which converts the number to decimal and then back to hex (and manually adds the 0x):



          printf '0x%xn' "$((16#00080000))"


          Which you could write as:



          printf '0x%xn' "$((16#$(expr substr "$SUPERBLOCK" 64 8)))"





          share|improve this answer























          • Thank you! I actually added |rev inside to convert to big-endian: printf "$((16#$(expr substr $SUPERBLOCK 64 8|rev)))"

            – DenisNovac
            3 hours ago







          • 4





            @DenisNovac I'm not sure if you use big/little endian correctly (maybe you have something else on mind, but I'm doing some assembly programming for fun, so for me endianness is per bytes), but 0x12345678 is in other endianness 0x78563412, not 0x87654321. (and the value in your question 00080000 is after byte swap 00000800, i.e. 2048 decimal)

            – Ped7g
            3 hours ago












          • Oh, you are right. I just got the right answer by wrong way. I am rewriting some code from python to bash, so i know all answers before i got them.

            – DenisNovac
            3 hours ago











          • @DenisNovac: You didn't have the right answer FYI. 0x8000 was originally in your question which is not the same as 0x80000 or 0x00080000

            – Jesse_b
            3 hours ago












          • Yes, but i needed to get exactly 0x8000, so i've made mistake somewhere before. This is offset or something.

            – DenisNovac
            3 hours ago










          Your Answer








          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "106"
          ;
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function()
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled)
          StackExchange.using("snippets", function()
          createEditor();
          );

          else
          createEditor();

          );

          function createEditor()
          StackExchange.prepareEditor(
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: false,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: null,
          bindNavPrevention: true,
          postfix: "",
          imageUploader:
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          ,
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507044%2fhow-to-read-string-as-hex-number-in-bash%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          4














          Probably a better way to do this but I've come up with this solution which converts the number to decimal and then back to hex (and manually adds the 0x):



          printf '0x%xn' "$((16#00080000))"


          Which you could write as:



          printf '0x%xn' "$((16#$(expr substr "$SUPERBLOCK" 64 8)))"





          share|improve this answer























          • Thank you! I actually added |rev inside to convert to big-endian: printf "$((16#$(expr substr $SUPERBLOCK 64 8|rev)))"

            – DenisNovac
            3 hours ago







          • 4





            @DenisNovac I'm not sure if you use big/little endian correctly (maybe you have something else on mind, but I'm doing some assembly programming for fun, so for me endianness is per bytes), but 0x12345678 is in other endianness 0x78563412, not 0x87654321. (and the value in your question 00080000 is after byte swap 00000800, i.e. 2048 decimal)

            – Ped7g
            3 hours ago












          • Oh, you are right. I just got the right answer by wrong way. I am rewriting some code from python to bash, so i know all answers before i got them.

            – DenisNovac
            3 hours ago











          • @DenisNovac: You didn't have the right answer FYI. 0x8000 was originally in your question which is not the same as 0x80000 or 0x00080000

            – Jesse_b
            3 hours ago












          • Yes, but i needed to get exactly 0x8000, so i've made mistake somewhere before. This is offset or something.

            – DenisNovac
            3 hours ago















          4














          Probably a better way to do this but I've come up with this solution which converts the number to decimal and then back to hex (and manually adds the 0x):



          printf '0x%xn' "$((16#00080000))"


          Which you could write as:



          printf '0x%xn' "$((16#$(expr substr "$SUPERBLOCK" 64 8)))"





          share|improve this answer























          • Thank you! I actually added |rev inside to convert to big-endian: printf "$((16#$(expr substr $SUPERBLOCK 64 8|rev)))"

            – DenisNovac
            3 hours ago







          • 4





            @DenisNovac I'm not sure if you use big/little endian correctly (maybe you have something else on mind, but I'm doing some assembly programming for fun, so for me endianness is per bytes), but 0x12345678 is in other endianness 0x78563412, not 0x87654321. (and the value in your question 00080000 is after byte swap 00000800, i.e. 2048 decimal)

            – Ped7g
            3 hours ago












          • Oh, you are right. I just got the right answer by wrong way. I am rewriting some code from python to bash, so i know all answers before i got them.

            – DenisNovac
            3 hours ago











          • @DenisNovac: You didn't have the right answer FYI. 0x8000 was originally in your question which is not the same as 0x80000 or 0x00080000

            – Jesse_b
            3 hours ago












          • Yes, but i needed to get exactly 0x8000, so i've made mistake somewhere before. This is offset or something.

            – DenisNovac
            3 hours ago













          4












          4








          4







          Probably a better way to do this but I've come up with this solution which converts the number to decimal and then back to hex (and manually adds the 0x):



          printf '0x%xn' "$((16#00080000))"


          Which you could write as:



          printf '0x%xn' "$((16#$(expr substr "$SUPERBLOCK" 64 8)))"





          share|improve this answer













          Probably a better way to do this but I've come up with this solution which converts the number to decimal and then back to hex (and manually adds the 0x):



          printf '0x%xn' "$((16#00080000))"


          Which you could write as:



          printf '0x%xn' "$((16#$(expr substr "$SUPERBLOCK" 64 8)))"






          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered 3 hours ago









          Jesse_bJesse_b

          13.7k23371




          13.7k23371












          • Thank you! I actually added |rev inside to convert to big-endian: printf "$((16#$(expr substr $SUPERBLOCK 64 8|rev)))"

            – DenisNovac
            3 hours ago







          • 4





            @DenisNovac I'm not sure if you use big/little endian correctly (maybe you have something else on mind, but I'm doing some assembly programming for fun, so for me endianness is per bytes), but 0x12345678 is in other endianness 0x78563412, not 0x87654321. (and the value in your question 00080000 is after byte swap 00000800, i.e. 2048 decimal)

            – Ped7g
            3 hours ago












          • Oh, you are right. I just got the right answer by wrong way. I am rewriting some code from python to bash, so i know all answers before i got them.

            – DenisNovac
            3 hours ago











          • @DenisNovac: You didn't have the right answer FYI. 0x8000 was originally in your question which is not the same as 0x80000 or 0x00080000

            – Jesse_b
            3 hours ago












          • Yes, but i needed to get exactly 0x8000, so i've made mistake somewhere before. This is offset or something.

            – DenisNovac
            3 hours ago

















          • Thank you! I actually added |rev inside to convert to big-endian: printf "$((16#$(expr substr $SUPERBLOCK 64 8|rev)))"

            – DenisNovac
            3 hours ago







          • 4





            @DenisNovac I'm not sure if you use big/little endian correctly (maybe you have something else on mind, but I'm doing some assembly programming for fun, so for me endianness is per bytes), but 0x12345678 is in other endianness 0x78563412, not 0x87654321. (and the value in your question 00080000 is after byte swap 00000800, i.e. 2048 decimal)

            – Ped7g
            3 hours ago












          • Oh, you are right. I just got the right answer by wrong way. I am rewriting some code from python to bash, so i know all answers before i got them.

            – DenisNovac
            3 hours ago











          • @DenisNovac: You didn't have the right answer FYI. 0x8000 was originally in your question which is not the same as 0x80000 or 0x00080000

            – Jesse_b
            3 hours ago












          • Yes, but i needed to get exactly 0x8000, so i've made mistake somewhere before. This is offset or something.

            – DenisNovac
            3 hours ago
















          Thank you! I actually added |rev inside to convert to big-endian: printf "$((16#$(expr substr $SUPERBLOCK 64 8|rev)))"

          – DenisNovac
          3 hours ago






          Thank you! I actually added |rev inside to convert to big-endian: printf "$((16#$(expr substr $SUPERBLOCK 64 8|rev)))"

          – DenisNovac
          3 hours ago





          4




          4





          @DenisNovac I'm not sure if you use big/little endian correctly (maybe you have something else on mind, but I'm doing some assembly programming for fun, so for me endianness is per bytes), but 0x12345678 is in other endianness 0x78563412, not 0x87654321. (and the value in your question 00080000 is after byte swap 00000800, i.e. 2048 decimal)

          – Ped7g
          3 hours ago






          @DenisNovac I'm not sure if you use big/little endian correctly (maybe you have something else on mind, but I'm doing some assembly programming for fun, so for me endianness is per bytes), but 0x12345678 is in other endianness 0x78563412, not 0x87654321. (and the value in your question 00080000 is after byte swap 00000800, i.e. 2048 decimal)

          – Ped7g
          3 hours ago














          Oh, you are right. I just got the right answer by wrong way. I am rewriting some code from python to bash, so i know all answers before i got them.

          – DenisNovac
          3 hours ago





          Oh, you are right. I just got the right answer by wrong way. I am rewriting some code from python to bash, so i know all answers before i got them.

          – DenisNovac
          3 hours ago













          @DenisNovac: You didn't have the right answer FYI. 0x8000 was originally in your question which is not the same as 0x80000 or 0x00080000

          – Jesse_b
          3 hours ago






          @DenisNovac: You didn't have the right answer FYI. 0x8000 was originally in your question which is not the same as 0x80000 or 0x00080000

          – Jesse_b
          3 hours ago














          Yes, but i needed to get exactly 0x8000, so i've made mistake somewhere before. This is offset or something.

          – DenisNovac
          3 hours ago





          Yes, but i needed to get exactly 0x8000, so i've made mistake somewhere before. This is offset or something.

          – DenisNovac
          3 hours ago

















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Unix & Linux Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid


          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.

          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507044%2fhow-to-read-string-as-hex-number-in-bash%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Best approach to update all entries in a list that is paginated?Best way to add items to a paginated listChoose Your Country: Best Usability approachUpdate list when a user is viewing the list without annoying themWhen would the best day to update your webpage be?What should happen when I add a Row to a paginated, sorted listShould I adopt infinite scrolling or classical pagination?How to show user that page objects automatically updateWhat is the best location to locate the comments section in a list pageBest way to combine filtering and selecting items in a listWhen one of two inputs must be updated to satisfy a consistency criteria, which should you update (if at all)?

          Тонконіг бульбистий Зміст Опис | Поширення | Екологія | Господарське значення | Примітки | Див. також | Література | Джерела | Посилання | Навігаційне меню1114601320038-241116202404kew-435458Poa bulbosaЭлектронный каталог сосудистых растений Азиатской России [Електронний каталог судинних рослин Азіатської Росії]Малышев Л. Л. Дикие родичи культурных растений. Poa bulbosa L. - Мятлик луковичный. [Малишев Л. Л. Дикі родичи культурних рослин. Poa bulbosa L. - Тонконіг бульбистий.]Мятлик (POA) Сем. Злаки (Мятликовые) [Тонконіг (POA) Род. Злаки (Тонконогові)]Poa bulbosa Linnaeus, Sp. Pl. 1: 70. 1753. 鳞茎早熟禾 lin jing zao shu he (Description from Flora of China) [Poa bulbosa Linnaeus, Sp. Pl. 1: 70. 1753. 鳞茎早熟禾 lin jing zao shu he (Опис від Флора Китаю)]Poa bulbosa L. – lipnice cibulkatá / lipnica cibulkatáPoa bulbosa в базі даних Poa bulbosa на сайті Poa bulbosa в базі даних «Global Biodiversity Information Facility» (GBIF)Poa bulbosa в базі даних «Euro + Med PlantBase» — інформаційному ресурсі для Євро-середземноморського розмаїття рослинPoa bulbosa L. на сайті «Плантариум»

          Вунгтау (аеропорт) Загальні відомості | Див. також | Посилання | Навігаційне меню10°22′00″ пн. ш. 107°05′00″ сх. д. / 10.36667° пн. ш. 107.08333° сх. д. / 10.36667; 107.0833310°22′00″ пн. ш. 107°05′00″ сх. д. / 10.36667° пн. ш. 107.08333° сх. д. / 10.36667; 107.083337731608Vinh AirportVinh airport facelift improves serviceвиправивши або дописавши їївиправивши або дописавши їїр