2009/10/28(Wed) 10:39:55 編集(投稿者)
■No43050 (マツダ さん) に返信
> char a =0x8192;
> byte[i]=0x81;
> byte[i+1]=:0x92;
> ・0xA7なら
> byte[i]:0xA7
> byte[i+1]:\0
エンディアンが曖昧なように見えます。
0x8192 は、81,92 と分割し、
0x00A7 は、A7,00 と分割するのですか?
で、とりあえず J# 2005 の場合には、下記のように書く事が出来ました。
java のコードを書いたのは初めてなので、これが適切であるかどうかの判断は任せますが。
public static byte[] toBytes(char c)
{
int i = (int)c;
//return new byte[] { (byte)(i & 0x00ff), (byte)(i >> 8) };
return new byte[] { (byte)(i >> 8), (byte)(i & 0x00ff) };
}