- PR -

double→byte[]、byte[]→doubleに変換する方法

1
投稿者投稿内容
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2004-04-03 01:20
質問1
double値→byte[]、byte[]→double値に変換する方法は?

int値の場合、例えば
int x = 1234;
byte[] b = new byte[4];
b[0]=(byte)((x >> 24) & 0xFF);
b[1]=(byte)((x >> 16) & 0xFF);
b[2]=(byte)((x >> & 0xFF);
b[3]=(byte)(x & 0xFF);

int y = (int)(b[0] << 24) | (int)(b[1] << 16) | (int)(b[2] << | (int)b[3]
int値→byte[]に変換できますが、double値の場合はこの方法がうまくいきません。
double値でも使える方法はありますか?

質問2
応用として、doubleでは無くstruct全体→byte[]、byte[]→struct全体の相互変換も
可能でしょうか?
・structの長さはどうやって知ることができるのでしょうか?
・C#はダミーのbyteデータを挿入して、structのバイト境界に変更を加えることは
あるのでしょうか?


※質問1、2共にセーフコードでエレガントな方法が第一希望ですが、
 無ければ、アンセーフコードも良しとします。
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2004-04-03 06:09
基本的には System.BitConverter です。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=6961&forum=7
↑構造体等、細かいことについてはこのスレッドを参照してください。
あと、メニューに検索がありますから、利用しましょう。
ひろし
ぬし
会議室デビュー日: 2002/09/16
投稿数: 390
お住まい・勤務地: 兵庫県
投稿日時: 2004-04-03 09:02
ご返答ありがとうございました。
ご指摘のリンク情報でうまくいきました。
1

スキルアップ/キャリアアップ(JOB@IT)