
いつもお世話になっております。
データベース上に持っているコードの桁数を拡張する必要に迫られています。
本来であれば、データベースの桁数を増やして関連するプログラムを見直して、という流れになるのですが、
使用している画面や帳票の数が多く、レイアウトの調整が要るのですが、殆どは圧縮されたコードのままでも問題ないため、桁数を圧縮する何等かの方法はないかなと考え初めました。
数字だけであれば、10進→16進に変換すれば桁数が圧縮できる可能性があると思うのですが、英数が混じる、いわば36進に相当する文字をそれ以上に圧縮するなんてことは可能なのでしょうか?
No.5ベストアンサー
- 回答日時:
36 進数 11 桁のデータ量を、
x 進数 8 桁で表すなら
36^11 = x^8
x = 36^(11/8) = 138.01 ...
139 個以上の文字を表すためには、
ASCII 由来の図形文字である 21-FE の 94 個では足りないので、
別に 45 個が必要になります。
もし文字コードが Unicode ならば、
ラテン補助文字である U+00C0-00FF の範囲で探しましょう。
ただし U+00D7 の様な記号は除外すべきかも
もし文字コードが JIS X 0201 ならば
カナ文字である A1-DD の範囲で探しましょう。
ただし A7 の様な小書きは除外すべきかも
参考)
https://ja.wikipedia.org/wiki/Unicode%E4%B8%80%E …
https://ja.wikipedia.org/wiki/JIS_X_0201
余談ではありますが、
ご質問のような場合ですと、データベースに拡張分の項目を追加して、必要な場合だけ既存分と拡張分を結合したコード体系にすべきかと考えます。
No.3
- 回答日時:
rubyのカテゴリで質問されていますが、rubyでの実装を想定されているのでしょうか。
コメントありがとうございました。
すみません。間違えていました。プログラミング全般のつもりだったのですが、無意識のうちにカテゴリが違っていました。
実装したいのは、レガシー言語のRPGです。若い人は知らないと思います。
rubyでも難しければ、絶対に無理そうなことは判ってきました。
No.2
- 回答日時:
>英数が混じる、いわば36進に相当する文字をそれ以上に圧縮するなんてことは可能なのでしょうか?
ASCIIの0x20~0x7Fを使用した96進数という考え方がありますが、
0x20(空白)と0x7F(DEL)は、使用しないで、94進数なら印字可能文字で構成できます。
36進数の何文字を何文字に圧縮したいのでしょうか。
それによって94進数にして効果があるかどうかがきまります。
コメントありがとうございました。
変換サイトを見つけて入力してみました。
11桁を8桁に変換したいのですが、文字数が足りないような感じです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 【Tableau Desktop】文字列から8桁の数字を日付型(yyyyMMdd)として取得 1 2023/07/31 10:17
- その他(データベース) 4進数風なバーコードは何ですか? 2 2022/11/28 23:33
- C言語・C++・C# C言語:数値の桁数指定についての質問です。 8 2022/05/26 23:53
- 高校 高校化学、気体、温度の有効数字 3 2023/04/02 11:39
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- Excel(エクセル) Excelの入力規則にいれる関数について 7 2022/12/22 10:19
- Java Java 南京錠 2 2023/02/04 11:46
- その他(コンピューター・テクノロジー) どうすればExpressZip圧縮ソフトで再びpdfを圧縮、閲覧できますか? 4 2022/06/11 14:47
- Visual Basic(VBA) VBA B列にある前から10文字のみ表示 3 2023/08/07 11:24
- C言語・C++・C# プログラムについて。 4 2023/07/19 13:43
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
ふりがなをアルファベット化す...
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
sedで日本語の置換方法について
-
Symfowareでのデータ型変換につ...
-
英数字を含む文字列(0-9,A-Z)...
-
Excelマクロにて30分単位の計算...
-
accessでJISコードを求める関数
-
フォームのコントロールのバッ...
-
繁体字の文字コード?変換
-
BASE64で0~63以降の数を表現す...
-
byte配列の内容をstringにコピ...
-
ExcelVBA実行後に時々落ちる
-
「彡」って文字はなんという文...
-
COBOLによる全角・半角混...
-
XMLデータの中の改行コードにつ...
-
pandas str型→int型変換
-
JIS → S-JIS コード変換するには
-
2バイト文字をJEFからSJISに変...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EBCDIC⇒SJIS変換の方法
-
セル内の文字列が日本語か英語...
-
std::stringからLPCWSTR型への変換
-
「彡」って文字はなんという文...
-
ふりがなをアルファベット化す...
-
ExcelVBA実行後に時々落ちる
-
VS 2008(VB.NET)
-
COBOLによる全角・半角混...
-
数値のパック10進数の変換に...
-
Symfowareでのデータ型変換につ...
-
sedで日本語の置換方法について
-
2バイト文字をJEFからSJISに変...
-
フォームのコントロールのバッ...
-
JIS → S-JIS コード変換するには
-
英数字を含む文字列(0-9,A-Z)...
-
Excel vba で1と10を正確に判断...
-
Excelマクロにて30分単位の計算...
-
PL/SQLでSJISの文字コードを取...
-
S-JIS → JIS コード変換するには
-
%fと%gについて
おすすめ情報