2つの4ビット整数(1,4,7 .....)を1バイトに格納したいと思います。2つの整数を1つのバイトに格納する
私は2つの整数a=0001
とb=1111
を持っています。これをメモリに1バイトの整数に格納するのが好きです。
誰もがこれを手伝ってくれますか?
2つの4ビット整数(1,4,7 .....)を1バイトに格納したいと思います。2つの整数を1つのバイトに格納する
私は2つの整数a=0001
とb=1111
を持っています。これをメモリに1バイトの整数に格納するのが好きです。
誰もがこれを手伝ってくれますか?
これらのうちの1つを4ビットでビットシフトし、バイナリORを使用する必要があります。
unsigned char number = (a << 4) | b;
そして、出戻ってそれらを得る1111Bと1をマスクし、他のバックをシフトする:
a = number >> 4;
b = number & 15;
私は答えを+1しましたが、OPが多くの情報を提供していないことを指摘したいので、unsigned shortがターゲット上のバイトであることが明確ではありません。 – Tod
良い点。彼が使っているものを推測しているにもかかわらず、 'char'はおそらくもっと一般的に正しいでしょう。 – Rusty
15 = 0xf(= dec:15 = bin: "1111") – user3896501
をFYI 4ビットの整数は、口語的に(少なくとも私たちの古い人たちへの)ニブルとして知られています – Tod