やる気が出なかったので午前中は転がってた
言葉と文字とヨッシーアイランドが好き。たまごっちやここたまのアニメを見ます。たまに絵を描きます。フォントを作ったりします。2023 年 1 月から https://mofu.kemo.no の副管理人です(いきなり権限を付与されたけど受け入れました)。
ソーシャルメディアの中では ここが常駐場所です。大体全ての活動をここに集約します。ActivityPub 対応サーバーからリモートフォローしてください。なおフォロー外からの非公開返信は受け取らない設定にしてます。
日本語の研究で博士号を持ってるけど、離れて長いし、自信ない。キーボードは新 JIS‐配列(JIS X 6004)微改変版です。今のプロフィール画像は『スーパーマリオブラザーズワンダー』の一般ポプリンの絵です(二次創作)。
全ての #絵 を見るにはこちら :
https://mofu.kemo.no/@sayunu/tagged/%E7%B5%B5
ここたまに興味がある人は、ここたまアンテナ(@cocotama_antenna)をフォローしてね。
https://commons.wikimedia.org/wiki/File:QRCode-1-Intro.png
Wikipedia の本文には「独自研究」を書けないが、画像として載せるなら大体何でもありという性質がよく表れてると思う 🙄
QR‐コードには「数字モード」など幾つかの符号化方式が用意されてる。そのうち「漢字モード」は JIS X 0208 の文字だけを 13 ビットに効率的に格納する設計なのが興味深い。(変換に Shift JIS を挟むけど、一バイト文字の領域を捨てるから、文字集合としては JIS X 0208 そのものと変わらない。)
Shift JIS で二バイト文字の上位バイトが取り得る値は、0x81〜9F と 0xE0〜EA。QR‐コードでは まづこれを 0x00〜29 にマップする。下位バイトは 0x40〜FC で、これを 0x00〜BC にマップすると考えてよい(枠としては 0xBF まで入る)。上位バイトの値に 0xC0 を乗じ、下位バイトと足し合わせる。つまり結果の値は、0xC0 で割った整数の商が上位成分で、余りが下位成分となる。
https://kikakurui.com/x0/X0510-2018-01.html
この 27 ページ、「7.4.6」の辺りに記述されてる。JIS X 0510 の規格書を HTML に変換した物なので、一部の組み版が崩れて読みにくいけど。
この変換方法では、元になる符号の上位バイトが最大 0xEB の場合(空きを詰めたマッピング後で最大 0x2A の場合)に、13 ビット(すなわち 0x1FFF 以下)に収まる(なぜなら 0x2A × 0xC0 = 0x1F80)。もし 0xEC があったら 14 ビットに溢れる(なぜなら 0x2B × 0xC0 = 0x2040)。
元々 JIS X 0208 の枠組みは 94 区まで定義できるけど、実際には 84 区までしか文字が埋まっていない。その結果として Shift JIS の上位バイトも 0xEA で終わり、そのお陰で 13 ビットに収まる。これは偶然の幸運なのかな。JIS X 0213 は 85 区以降も使うので収まらない。(でも九区などに追加された文字は収まるし、使えるなら有用ではある。)