ASCII文字列及び日本語文字列を,バイトに分解する。
・C++言語
元々バイトでしか扱えないので,全然問題にならない。
char mojiretu[]="test 文字列";
または,
char mojiretu[13];
strcpy(mojiretu,"test 文字列");
として変数に代入する行為自体が,バイトに分解して格納した事になる。
取り出す時には,0より始まる添え字を指定する。
char moji;
moji = mojiretu[0];
これで,先頭の t を取り出せる。
【注意】
一番最後を識別する \0 が付加されるのが,この言語の特徴です。
上記例では,mojiretu[12]; にその \0 が入っています。
常に文字列の最後にある \0 に気を付ける必要があります。・VB
実はVBで文字列をバイト単位に分解するのは,かなり難易度の高い処理です。
一発で分解する関数は用意されていない。そこで,下記のようにして分解する。
Dim mojiretu As String
mojiretu = "test 文字列"
Dim moji(11) As Byte
Dim i As Integer, j As Integer
Dim work As Long
For i = 1 To Len(mojiretu) Step 1
work = Asc(Mid$(mojiretu, i, 1))
If (0 <= work And work <= 255) Then
moji(j) = work
j = j + 1
Else
work = work + 65536
moji(j) = Int(work / 256)
moji(j + 1) = work Mod 256
j = j + 2
End If
Next i
取り出す時には,0より始まる添え字を指定する。
Dim moji2 As Byte
moji2 = moji[0]
これで,先頭の t を取り出せる。・Perl5
直接分解する関数は無いが,下記のようにして分解する。
$mojiretu = 'test 文字列';
@moji = split(//, $mojiretu);
取り出す時には,0より始まる添え字を指定する。
$moji2 = $moji[0];
これで,先頭の t を取り出せる。
参考までに,ASCIIコードを取り出したい場合は,vec関数を使う。
foreach(@moji){
push(@ascii,vec($_,0,8);
}