C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: uint型をbyte[]型に変換する方法


(過去ログ 23 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■10063 / inTopicNo.1)  uint型をbyte[]型に変換する方法
  
□投稿者/ Piz&Yumina (3回)-(2007/11/10(Sat) 22:48:52)
Piz&Yumina さんの Web サイト

分類:[C#] 

uint型をbyte[]型に変換したいのですが、方法が分からず困っています。

変換の方法ですが、例えば"1001001100101100000001011010010"の場合は、
 1001001 | 10010110 | 00000010 | 11010010
このように、4個に分解してバイト配列に格納したいのです。

試行錯誤した結果、int型については下のコードで実現できました。
    int[] fileSizeS = new int[] { fileSize };
    IntPtr fileSizeP = Marshal.AllocHGlobal(4);
    Marshal.Copy(fileSizeS, 0, fileSizeP, 1);
    byte[] byteFileSize = new byte[4];
    Marshal.Copy(fileSizeP, byteFileSize, 0, 4);
    Marshal.FreeHGlobal(fileSizeP);

しかし、Marshal.Copy()が、uintに対応していないのでuint型からbyte[]型への変換はできませんでした。
何か他に良い方法があったら教えてください。よろしくお願いします。

引用返信 編集キー/
■10065 / inTopicNo.2)  Re[1]: uint型をbyte[]型に変換する方法
□投稿者/ れい (183回)-(2007/11/10(Sat) 23:14:23)
BitConverterを調べたらいいと思います。
引用返信 編集キー/
■10067 / inTopicNo.3)  Re[2]: uint型をbyte[]型に変換する方法
□投稿者/ Piz&Yumina (4回)-(2007/11/10(Sat) 23:39:33)
Piz&Yumina さんの Web サイト
No10065 (れい さん) に返信
> BitConverterを調べたらいいと思います。

"C# uint byte[] 変換"などで調べても全く出てこなかったので、
自分で基数変換したり、ポインタを使ったりしなければならないのかと思ったのですが、
こんな便利なクラスがあったのですね。

解決しました。ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -