shell指令碼 把十進位制資料轉換成十六進製制

2021-06-16 09:42:05 字數 1858 閱讀 6691

本文介紹了一種shell指令碼,用來處理十進位制數轉換成十六進製制的方法。現有兩個資料檔案i0.txt和q0.txt,資料如下:

i0.txt                     q0.txt              

935                    3297

385                    6964

-280                 12697

1768                   8404

7377                    -852

#!bin/bash

#因為有負數,所以先轉換成16位十六進製制數 %16x

cat  i.txt  |  \

awk  ''  > i00.txt

cat  q.txt  |  \

awk  ''  > q00.txt

#我需要的是i0.txt和q0.txt十進位制數對應的4位十六進製制數,取有效的4位

cut  -c  13-16  i00.txt  >  i_mem.txt

cut  -c  13-16  q00.txt  > q_mem.txt

#不足4位的,前面補0

cat  i_mem.txt  |  \

awk  ''  >  i_mem_00.txt

cat  q_mem.txt  |  \

awk  ''  >  q_mem_00.txt

#將兩個檔案(各4位)組成8位十六進製制數

paste  -d  ":"  i_mem_00.txt  q_mem_00.txt  > rfiu_mem_00.txt

sed  's/  ://g'  rfiu_mem_00.txt  >  rfiu_mem.txt

#中間資料如下:

i00.txt                         q00.txt

3a7                             ce1

181                          1b34

ffffffffffffa1f                           3199

6e8                           20d4

1cdc                 fffffffffffffcac

i_mem.txt                 q_mem.txt

3a7                             ce1

181                          1b34

fa1f                           3199

6e8                           20d4

1cdc                             fcac

i_mem_00.txt               q_mem_00.txt

03a7                            0ce1

0181                          1b34

fa1f                             3199

06e8                           20d4

1cdc                              fcac

rfiu_mem.txt

03a70ce1

01811b34

fa1f 3199

06e820d4

1cdcfcac

注:可能這個方法不是最精簡的,如有更好的方法請高手指點一二,不勝感激。  

m進製轉十進位制

題目描述 description 將m進製數n轉化成乙個十進位制數 m 16 題目保證轉換後的十進位制數 100 輸入描述 input description 共一行n和m 輸出描述 output description 共乙個數 表示m進製的n化成十進位制的數 樣例輸入 sample input ...

大資料十進位制轉32進製

大資料進製轉換,先轉出十六進製制 參考網上例子 再轉成二進位制,再轉成32進製 include stdio.h include stdlib.h include string.h const char s32bit const 32 char strrev char s t 與t 抵消 t 回跳過結...

十六進製制轉十進位制

create function fn hextobinary hex varchar 8 returns varchar 255 asbegin declare base tinyint declare string varchar 255 declare return varchar 255 de...