naobe @ ウィキ
ソフトウェア共通
最終更新:
Bot(ページ名リンク)
-
view
ソフトウェアに戻る
グレゴリオ暦
現在の暦。閏年(2/29がある)は以下の手順で決める。上から順番に上書き。2100年は、4で割り切れる、100で割り切れる、400で割り切れないので平年。
- 西暦年が4で割り切れる年は閏年とする。
- 西暦年が100で割り切れる年は平年
- 西暦年が400で割り切れる年は閏年
UUID(Universal Unique Identifier)
http://itpro.nikkeibp.co.jp/article/Keyword/20090206/324330/ 参照
世界的に一意なID。国、機器、システムに関らず一意なID。機器の名前や時刻情報などを基に「十分大きなサイズかつランダムな数値」として生成する。UUIDのサイズは16バイトで、256を16回掛けた数のバリエーションを作り出す。
世界的に一意なID。国、機器、システムに関らず一意なID。機器の名前や時刻情報などを基に「十分大きなサイズかつランダムな数値」として生成する。UUIDのサイズは16バイトで、256を16回掛けた数のバリエーションを作り出す。
文字コード(charset)
言語によって定義がまちまち。以下は参考。
| MIME-NAME | alias | 説明 |
|---|---|---|
| ISO-8859-1 | latin1 | アスキーコード。 |
| Shift_JIS | MS_Kanji | シフトJIS |
| EUC-JP | EUCコード | |
| UTF-8 | utf8 | |
| Windows-31J | CP932 | Shift_JISのMS、NEC、IBM拡張。 |
JISコード
参考URL http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm
参考文献 日本語情報処理、プログラマのための文字コード技術入門
参考文献 日本語情報処理、プログラマのための文字コード技術入門
- バイトは7bitで表す。ASCIIコードで書ける。
- エンコード名 ISO-2022-JP。電子メールで使う。昔のメール・システムでは8bitコードは送信できない。
- 漢字を収めた最初の国家標準電子文字セット。
- JIS X 0208-1990が最も一般的で権威のある日本語文字セット
- エスケープシーケンスを使って文字モードを切り替える。(文字モード:2バイト文字、1バイト文字など)
- エスケープコードは、0x1B
| 項目 | 内容 | 備考 | |
| 2バイト文字 | 1バイトの範囲 | 0x21 ~ 0x7E | |
| 2バイトの範囲 | 0x21 ~ 0x7E | ||
| 2バイト文字エスケープシーケンス | JIS X 0208-1990 | 0x 1B 26 40 1B 24 42 | |
| 1バイト文字エスケープシーケンス | JISローマ字 | 0x 1B 28 4A | |
| ASCII | 0x 1B 28 42 | ||
| 半角カタカナ | 0x 1B 28 49 | ||
| JIS8半角カタカナ | 0xA1 ~ 0xDF | ||
| ASCII/JISローマ字 | 0x21 ~ 0x7E | ||
| JIS第一水準漢字 | 16区~47区 | 1区が0x21(バイト) | |
| JIS第二水準漢字 | 48区~83区 |
Shift JIS
- 1バイトコードは、ASCIIコードと同じ
- 2バイトコードの文字位置がJISローマ字コードの半角カナの文字 位置とぶつからないようにJISコードをシフトした文字コード。
- エスケープシーケンスは使わない。
| 項目 | 内容 | 備考 | |
| 2バイト文字 | 1バイトの範囲 | 0x81 ~0x9F, 0xE0 ~0xEF | |
| 2バイトの範囲 | 0x40 ~ 0x7E, 0x80 ~ 0xFC | ||
| 半角カナバイト範囲 | 0xA1 ~ 0xDF | ||
| ASCII/JISローマ字バイト範囲 | 0x21 ~ 0x7E |
Unicode
- 群(group:128個)、面(plane:256個)、区(row:256個)、点(cell:256個)で文字を決定する
- 日本、中国、韓国の漢字を一部、統一したコード体系
- 群:0、面:0がUCS-2,基本多言語面(BMP:Basic Multilingual Plane)
UTF-8
Unicodeをバイトの並びに変換したコード
【UnicodeからUTF-8への変換】
| Unicode | ビットパターン | 第1バイト | 第2バイト | 第3バイト | 第4バイト | 備考 |
|---|---|---|---|---|---|---|
| U+0000 .. U+007F | 00000000-0xxxxxxx | 0xxxxxxx | ASCIコード | |||
| U+0080 .. U+07FF | 00001xxx-xxyyyyyy | 110xxxxx | 10yyyyyy | |||
| U+0800 .. U+FFFF | xxxxyyyy-yyzzzzzz | 1110xxxx | 10yyyyyy | 10zzzzzz | UCS-2のFF61~FF9F:半角カナ | |
| U+10000..U+1FFFFF | 00000000-000wwwxx-xxxxyyyy-yyzzzzzzz | 11110www | 10xxxxxx | 10yyyyyy | 10zzzzzz |
※ U+11234: 群が0、1が面、12が区、34が点。 U+FFFF:群が0、面が0、区がFF、点がFF
- ASCIIコードはUTF-16では冗長なバイトが追加されるが、UTF-8ではASCIIコードと全く同じになる。
- 先頭バイトの頭のビットをみれば文字のバイト長がわかる
- 漢字は、UTF-16では2バイトだが、UTF-8では3バイトになる
用語
| 項目 | 説明 |
| リエントラント | あるユーザがプログラムを使用中であっても、他のユーザがこのプログラムを使用可能なこと。再入可能。スレッドを考えると排他を適切にとらないとリエントラントとは言えない。 |
| ビッグエンディアン | ワード単位のバイトデータをメモリアドレスの下位から上位の順番に配置すること。例 0x12345678という4バイトのデータを0x12を下位アドレスに、以下上位アドレスに順番に並べる。人間がみやすい配置となる。IBM,モトローラ系のCPUで適用される。 |
