ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:noname#82037 *バイナリエディタ*
困り度:
  • すぐに回答を!
36進数対応バイナリエディタ探してます。お願いします!!
質問投稿日時:09/04/08 22:39
質問番号:4864057
この質問に対する回答は締め切られました。
最新から表示回答順に表示

回答

 

回答者:beefisdead 本当に作るのは、素晴らしいことだと思います。

私の言う「この世界」とは、掲示板や質問サイトのことではなく、技術者集団の世界のことです。ここの人たちは、アイディアがあるなら自分でさっさと作ってしまえ、という考えで動きます。

36進数で見たからと言って、別にファイルサイズが小さくなるわけではありません。byteの切れ目が分かりにくくなるのも現実には使いにくい理由ですね。
そういう話を考えると普通は36進数を敢えて使おうという人はいません。だからこそ、実践してみることはおもしろい。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:09/04/10 09:30
回答番号:No.4
この回答への補足分かりました。ありがとうございました!
この回答へのお礼この回答にお礼をつける(質問者のみ)

回答

 

回答者:salsberry 発想としては面白いですね。
ただ、バイナリエディタで採用するには36進数はあまり便利ではありません。現代のコンピュータ(のデータ)は2進数8桁、つまり8ビットを1バイトと呼んで基本的な単位としている場合がほとんどだからです。

> 二進数をそのままできる限り短く表現する言語としては最も合理的です。

16進数は1文字でちょうど4ビットを表す(2の4乗=16)ので、1バイトは16進数2文字で洗わせます。
一方36進数は1文字で5.1ビットちょっとの情報量を持ちます(2の5.17乗≒36.0)。したがって、1バイトのデータを36進数で表すには結局2文字必要です。

もちろん、複数バイトのデータをまとめて表すことにすれば36進数の優位性が出てきます。たとえば、9バイト(72ビット)のデータは16進数で18文字になりますが、36進数なら14文字で収まります。
しかし、バイナリエディタなら「先頭からnバイト目のデータをxxに書き換えたい」というような操作があるはずで、36進数で表されたデータの何文字目をどう書き換えたら意図した操作になるのかが直観的に判断できません。これが、あまり便利でないと書いた理由です。

発想をさらに押し進めると、0〜9と大文字のA〜Zに加えて小文字のa〜zも加えて62進数にするとか、どうせならさらに何か2文字加えれば64進数になるのでちょうど6ビット分になって便利かもしれません。実は、後者の考え方はBase64という符号化方法として既に広く使われています(リンク先参照)。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:09/04/09 20:28
回答番号:No.3
参考URL: http://ja.wikipedia.org/wiki/Base64
この回答へのお礼投稿ありがとうございます。でもつくるべきだという意見が多いのでもう早速作ってしまいました。ソースは以下のサイトです。
http://okwave.jp/qa4866336.html

回答

 

回答者:tadys 自分で作るしかないでしょうね。

“FORTH”言語を使用すれば数値の基数を任意に設定できるので36進数に対応できます。
数値を36進数と10進数で表示するプログラムを 36dump とすると
: 36dump dup 36 base ! . 10 base ! . ;

これを実行すると
9 36dump 9 9
10 36dump A 10
30 36dump U 30
35 36dump Z 35
36 36dump 10 36
のようになります。

Win用のFORTHは
http://win32forth.sourceforge.net/
から入手できます。
Mac用ならばMOPSが使用できます。
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:09/04/09 08:58
回答番号:No.2
この回答へのお礼つくるべきだという意見が多いので早速本当に作ってしまいましたよ! さすがにイチからつくる余裕も能力もないので,まずそこらへんのフリーウェアサイトによくあるバイナリエディタで10進数まで求め,その後の36進数化処理を自分がつくったスクリプトプログラムで行うという感じです。ソースは以下のサイトです。
http://okwave.jp/qa4866336.html
ありがとうございました。

回答

 

回答者:beefisdead 欲しいと思ったときこそ、プログラミングをするときではありませんか?
この世界には、言い出しっぺの法則というものがありますので、36進数対応バイナリエディタは是非あなたが作るべきでしょう。

バイナリデータから36進数をどう構成するのかは気になりますが、そこを含めてあなたの腕の見せ所ですね。
おもしろいアイディアだと思います。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:09/04/09 02:50
回答番号:No.1
この回答への補足投稿ありがとうございます。どう構成するのかとありますが,16進数が0〜9までの10種類の数字とA〜Fの6種類のアルファベットの計16種類の文字で二進数を表現するのにたいし,これをA〜FではなくA〜Zに拡張したものを,36進数といい,二進数をそのままできる限り短く表現する言語としては最も合理的です。確かにつくるというのは良い考えではありますが,どこから手をつけたら良いのか見当がつきません。多少のプログラミングはやっているので,もしある程度見通しできれば既につくりはじめていると思います。実際今まで簡単なソフトは自作しています。それから,ひとつ気になる事があるのですが,「この世界」とはどこの事を示しているのですか? okwaveでしょうか,それとも掲示板形式のサイト全般でしょうか。.
この回答へのお礼つくるべきだという意見が多いので早速本当に作ってしまいましたよ! さすがにイチからつくる余裕も能力もないので,まずそこらへんのフリーウェアサイトによくあるバイナリエディタで10進数まで求め,その後の36進数化処理を自分がつくったスクリプトプログラムで行うという感じです。ソースは以下のサイトです。
http://okwave.jp/qa4866336.html
ありがとうございました。
最新から表示回答順に表示