- 締切済み
長さ3のバイト配列
長さ3のバイト配列 0~16777215の範囲の数値がありまして byte[ ] byteArrayA =BitConverter.GetBytes(0x00); byte[ ] byteArrayB =BitConverter.GetBytes(0xffffff); で、 00-00-00 FF-FF-FF と、長さ3固定のバイト配列を返して欲しい場合はどうすればいいのでしょう? そのまんまだとINT16かINT32かで配列の個数が違ってきますよね。 INT32型でだと4個の配列になっちゃいますが、3個でいいんです。 どうしましょう?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- 和泉 博(@hiroshi09s)
- ベストアンサー率54% (59/109)
回答No.2
#include <stdio.h> int main(void) { int b = 0x12345678; b &= 0x00ffffff; //上位バイトを削除 printf("%#x\n",b); return 0; }
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
ぱっと思い付いた方法: 1. とりあえず INT32 で変換しておいて不要な部分を捨てる. 2. 自分で作る.
質問者
補足
とりあえず2で考えてみました。 int num=123; (byte)(num & 0x0000ff)); (byte)((num & 0x00ff00) >> 8)); (byte)((num & 0xff0000) >> 16)); 1.不要な部分を捨てる の方は未だどうすりゃいいのか解らずです。 他にも方法ありましたら、引き続き解答お待ちしています。
補足
0~16777215の範囲の数値がありまして 0x12345678という範囲外の数字はありません それと、00-34-56-78という結果が欲しいのではありません。 34-56-78という長さ3のものが欲しいのです。