| ■No99407 (kiku さん) に返信
> ■No99406 (kiku さん) に返信
>>■No99405 (kiku さん) に返信
> >>■No99404 (たろー さん) に返信
>
> 仕様をまとめると下記ですね。
> 後はどなたかにお任せします。
>
> 入力
> 1バイト目:12345678
> 2バイト目:12345678
> 3バイト目:12345678
>
> 前半12bitの結果
> 1バイト目:入力1バイト目の前半(1234)+入力1バイト目の後半(5678)
> 2バイト目:入力2バイト目の前半(1234)+0埋め(0000)
>
> 後半12bitの結果
> 1バイト目:入力2バイト目の後半(5678)+入力3バイト目の前半(1234)
> 2バイト目:入力3バイト目の後半(5678)+0埋め(0000)
>
C#のソースですが、サンプル書いてみました。
var input = new byte[] { 0x12, 0x34, 0x56 };
var byte1前半 = (byte)((input[0] & 0xF0) >> 4);
var byte1後半 = (byte)((input[0] & 0x0F) >> 0);
var byte2前半 = (byte)((input[1] & 0xF0) >> 4);
var byte2後半 = (byte)((input[1] & 0x0F) >> 0);
var byte3前半 = (byte)((input[2] & 0xF0) >> 4);
var byte3後半 = (byte)((input[2] & 0x0F) >> 0);
var output前半 = new byte[] { (byte)((byte1前半 << 4) | (byte1後半 << 0)), (byte)(byte2前半 << 4) };
var output後半 = new byte[] { (byte)((byte2後半 << 4) | (byte3前半 << 0)), (byte)(byte3後半 << 4) };
|