BBS-complangawk/313

トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

To hex conversion precision - Darek (2006年06月20日 23時52分01秒)

10 進数を 16 進数に変換したいと思っています。

awk '{printf ("%x\n", $0) }' aaaa > bbbb

ただし、値が大きすぎてうまく動作しません。

12491766857 -> 7fffffff
12493627151 -> 7fffffff
12499683119 -> 7fffffff
12503420809 -> 7fffffff
12505828998 -> 7fffffff

http://groups.google.co.jp/group/comp.lang.awk/browse_thread/thread/3b141626cbfb3af5/a5dc0997f9fca080?hl=ja#a5dc0997f9fca080


Re: - Grant (2006年06月20日 23時52分38秒)

$ awk '{printf ("%12d: %x\n", $1,$1) }' zzz

のようにします。

12491766857: 2e8913c49
12493627151: 2e8ad9f0f
12499683119: 2e90a072f
12503420809: 2e9430f89
12505828998: 2e967ce86

Re: - Darek (2006年06月20日 23時53分42秒)

mawk ではうまく動作しません。

darekc@trzeci:~$  awk '{printf ("%12d: %x\n", $1,$1) }' aaaa
(...)
  2147483647: 7fffffff
  2147483647: 7fffffff
  2147483647: 7fffffff
  2147483647: 7fffffff
  2147483647: 7fffffff
  2147483647: 7fffffff
darekc@trzeci:~$ awk -W version
mawk 1.3.3 Nov 1996, Copyright (C) Michael D. Brennan

Re: - Grant (2006年06月22日 00時43分51秒)

以下のようにしてはどうでしょうか。

~$ awk '{printf ("%12d: %x%04x\n", $1, $1/0x10000, and($1,0xffff)) }' zzz
12491766857: 2e8913c49
12493627151: 2e8ad9f0f
12499683119: 2e90a072f
12503420809: 2e9430f89
12505828998: 2e967ce86