過去の桐井戸端BBS (桐ver.8) |
16016 | ある項目の数列を一括で16進数に変換したい | じみ | 2002/05/18-15:50 |
ものすごく初歩的な質問なのでしょうが、どうしても方法が分からないので教えてください。 ある項目の数列(10桁)を一括で16進数に置き換えるにはどうしたら良いでしょう? お分かりになる方、ぜひご教示ください。お願いいたします。 | |||
16019 | Re:進数変換 | 【多遊】 | 2002/05/18-16:38 |
記事番号16016へのコメント じみさんこんにちは 表の項目を文字列で作成し計算式を#hex32([ある項目])と設定では? | |||
16020 | Re:進数変換 | じみ | 2002/05/18-16:50 |
記事番号16019へのコメント 多遊さんありがとうございます。 早速試したみたのですが、 KD1260:式の結果が代入または変換できないデータ型です と表示されてしまうのです。 項目はちゃんと文字列に設定してあるのですが・・・・・・。 他に設定すべき箇所があるのでしょうか? | |||
16021 | Re:進数変換 | 【多遊】 | 2002/05/18-16:55 |
記事番号16019へのコメント じみさんへ。訂正 >表の項目を文字列で作成し計算式を#hex32([ある項目])と設定では? いま桐のヘルプで確認しましたら、 >num に指定できる数値は符号付きの 32 ビットで扱える範囲内の整数 (-2147483648 〜 2147483647)です。 と、記載されてましたので、2147483647以上は無理なようです これは、一括処理(イベント)など書かなければ無理かもしれませんネ 失礼いたしました。 | |||
16022 | Re:進数変換 | 【多遊】 | 2002/05/18-17:01 |
記事番号16020へのコメント 同時の返事だったようですが、 >KD1260:式の結果が代入または変換できないデータ型です このエラーは「ある数列」が、文字列っだたりすると出ます。 したがって、計算式を、#hex32(#数値([ある数列]))とすればなおると思いますが、 先にも書きましたように数値の限度があります 項目計算式だけで無理かも知れません。 | |||
16023 | Re:進数変換 | じみ | 2002/05/18-17:12 |
記事番号16021へのコメント 多遊さんへ。 何度も親切にお教えいただきありがとうございます。とても感謝です。 ですが、処理したい数値が“2147483647以上”なのです。 残念。 でも、いろいろとご教示いただきありがとうございました。 | |||
16026 | Re:進数変換 | 【多遊】 | 2002/05/18-18:05 |
記事番号16023へのコメント じみさんへ のりかかった舟で・・・ お手数をかけますが再度お試しいただけませんか? なお式は掲示板では複数行に表示されるかもしれませんが 全部つながった1つの式です #条件選択(#数値([ある数列])<=16777215,#hex32(#数値([ある数列])),1,#hex32 (#数値(#int(#数値([ある数列])/16^6)))+#右側文字列("00000"+#hex32(#数値 (#mod(#数値([ある数列]),16^6))),6)) | |||
16027 | Re:進数変換 | hidetake | 2002/05/18-18:05 |
記事番号16023へのコメント >ですが、処理したい数値が“2147483647以上”なのです。 コマンド書くならば次のような感じで いけるでしょうか? var 文字列{&Hex},数値{&Num} キー入力 (1,1),&Num call Dec2Hex(&Num) 確認 &Hex + " / "+ #hex32(&Num) 終了 proc Dec2Hex(数値 &Dec) var 数値{&Div,&Mod} &Div=#int(&Dec/16) &Mod=#mod(&Dec,16) &Hex=#sstr("0123456789ABCDEF",&Mod+1,1)+&Hex call (&Div) Dec2Hex(&Div) end | |||
16028 | Re:進数変換 | hidetake | 2002/05/18-18:08 |
記事番号16027へのコメント >コマンド書くならば次のような感じで >いけるでしょうか? 先に【多遊】さんが、関数だけで分割して 計算する方法を出してましたね。 (^^; | |||
16030 | Re:進数変換 | じみ | 2002/05/18-18:47 |
記事番号16026へのコメント 多遊さんへ。 試してみました!! できました!! ありがとうございます!! すごい!! 理屈はよく分かってませんが・・・・・・。 でも、助かりました。感謝です。 | |||
16031 | Re:進数変換 | じみ | 2002/05/18-18:51 |
記事番号16028へのコメント hidetakeさんへ。 せっかくお教えいただいたのですが、多遊さんがご教示くださった方法で処理してしまいました。 でも、そのお気遣いだけでも感謝です。今度はおふたりから教わった方法を使い分けて、活用したいと思います。 ホントに、ホントに、感謝です!! そして、皆さんの桐の使いこなしぶりに敬服です。 それでは。 | |||
16032 | Re:進数変換 | 【多遊】 | 2002/05/18-20:02 |
記事番号16027へのコメント 再帰ってこんなに簡単に使用できるのですね! >var 文字列{&Hex},数値{&Num} >キー入力 (1,1),&Num >call Dec2Hex(&Num) >確認 &Hex + " / "+ #hex32(&Num) >終了 > >proc Dec2Hex(数値 &Dec) > var 数値{&Div,&Mod} > &Div=#int(&Dec/16) > &Mod=#mod(&Dec,16) > &Hex=#sstr("0123456789ABCDEF",&Mod+1,1)+&Hex 確認 &Hex > call (&Div) Dec2Hex(&Div) >end > 一行追加して拝見いたしました。 |