●文字列関数で出てくる 〜〜〜B
文字列関数専用目次で、それぞれの関数名のほとんどに (b) が付いています。
これは、末尾にbが付くと、処理対象の文字列をバイト(Byte)数で処理しろってことを表します。
●普通は対象が桁数
末尾にbが付いていないと、普通に桁数で処理するんです。
桁数は、普段から使っているので容易にイメージがわくと思います。
"私は日本人です。" は 8桁(最後の句点も含めますからね)
"私はJapaneseです。"は13桁
間違いようもないですよね。
●Bが付くと対象はByte(バイト)数
でも、bが付く関数を使うと、桁数ではなくて、バイト(Byte)数と呼ばれる数え方で数えられます。
これが曲者です。
バイト数って何?って思われる方も多いでしょう。
バイトって、0〜255までの256通りを表せる情報量だよって知ってる方もいるとは思います
●Byte数とはいったい何?
まぁ、ネットが発達して、世界中のネットが接続されているインターネットでは、ちまちまとバイト数を数えてなんてしていないんですが、システムを作ったりする場合、時としてこのバイト数を無視すると痛い目に遭うことがあります。
まず、Byte ですが、これは情報量の単位で、 Bit が 8個集まったものです。
そして、Bit は情報量の最小単位で、 2通りの何かを表します。
Yes/No はい/いいえ 0/1 などですね。
とりあえず、意味付けしたら、こんな風に2通りの値がとれます。
Yes/Noの組み合わせを8個集めたら、YesYesYesYesYesYesYesYesからNoNoNoNoNoNoNoNoまで256通りの値になります。
そして、このByteが最も簡単な文字コードセットを設定する便利な単位となります。
また、現在のコンピュータは、Byteの整数倍のデータ幅を持った、メモリやCPUで構成されています。
ごめんなさい。続きはのちほど
昨日は、Byteの整数倍のデータ幅・・・云々ってとこまでお話ししました。
Byte の 2倍を Word、
Word の 2倍を Long Word (つまり Byte の 4倍ですね。) って言います。
つまり、
Byte = 8 Bit
Word = 16 Bit
Long Word = 32 Bit
良く、32bit CPUとか 64bit CPUとか言いますが、これはデータバス幅がそれぞれ 32bit とか 64bitあるわけです。
データバス幅が広い方が一度のアクセスで多量のデータを処理できるので、動作が早くなりますね。
ただ、やみくもに増やしても、それらのデータを格納するメモリやデータの経路を大きくしなければいけないのでコストが跳ね上がります。
なので、ついこないだまでは 32bit が主流でしたが、今では 64bit が主流になってきていますね。
そうそう、アプリケーションにも、32bit版と 64bit版がありますが、これはCPUが解釈し実行する機械語の命令が 32bit 版と 64bit 版があり、そのどちらの命令でアプリケーションが作られているかって違いです。
64bit 版の方が管理できるメモリ領域も広く、機能的には高いものがありますね。 値段も高いですが(笑)
あっ!
脱線し過ぎました
●Excelでの文字列の扱い
Excelで、文字(列)を入力した時、セルには入力した文字列が表示されます。
さて、それはどのように記録されるのでしょうか?
文字として・・・って答えではありません。
入力した文字に対応するコードが記録されます。
ただ、文字コードって言っても、いろいろな種類があります。
皆さんもどこかでちらっと目にしたことがあると思いますが、
ASCII
EBCDIC
JIS
ShiftJIS
EUC
UTF-8
UTF-16
UNICODE
などなど
それぞれ、必要となる(使用する)文字に番号を振っています。
ASCII は対象は半角英数字です。拡張されて半角英数カナ(日本では)となっています。
EBCDICも同じですが、大型コンピュータで昔から使われています。
JISは日本工業規格(Japan Industrial Standard)ですが、この規格で日本で使われる文字(英数カナ漢字)に番号を振っています。
ShiftJISはJISコードの漢字部分をある仕組みで半角コードの空き部分に漢字コードの1バイト目が来るように仕組まれたコードです。
EUCは UNIX というWindowsとは別の種類の OS (オペレーティングシステム)で使用される文字コード
Unicodeは、世界中の文字を集めてそれに番号を振ったものです。但し、中国語と日本語の漢字で同じような字体の文字に同じコードが振られてしまってる・・・というちょっぴり弊害がありますが・・・
UTF-8はUnicodeを 変換したものです。ASCIIコードと重複している部分は 1バイトで、それ以外(つまり全角文字などですね)は2〜6バイトに変換されます。
UTF-16もUnicodeを 変換したものです。
さて、Excelではどの文字が使われているかと言うと・・・
見かけは ASCII + ShiftJIS
中身は UTF-16
みたいです(筆者の調査による 日本語版Windows10 64bit + 日本語版 Excel 2019にて)
いよいよ、本題ですが、時間が無くなりましたので、Byteとは Part 2でお話ししますm(__)m
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image