2012-03-05 15 views
1

2つの4ビット整数(1,4,7 .....)を1バイトに格納したいと思います。2つの整数を1つのバイトに格納する

私は2つの整数a=0001b=1111を持っています。これをメモリに1バイトの整数に格納するのが好きです。

誰もがこれを手伝ってくれますか?

+0

をFYI 4ビットの整数は、口語的に(少なくとも私たちの古い人たちへの)ニブルとして知られています – Tod

答えて

6

これらのうちの1つを4ビットでビットシフトし、バイナリORを使用する必要があります。

unsigned char number = (a << 4) | b; 

そして、出戻ってそれらを得る1111Bと1をマスクし、他のバックをシフトする:

a = number >> 4; 
b = number & 15; 
+1

私は答えを+1しましたが、OPが多くの情報を提供していないことを指摘したいので、unsigned shortがターゲット上のバイトであることが明確ではありません。 – Tod

+0

良い点。彼が使っているものを推測しているにもかかわらず、 'char'はおそらくもっと一般的に正しいでしょう。 – Rusty

+0

15 = 0xf(= dec:15 = bin: "1111") – user3896501

関連する問題