2016-08-30 7 views
1

リトルエンディアンで動作します。これはexcatly(これがあればeofを含む)のようなCのベクトルのビット表現をこのようにしますか?Cのベクトルのビット表現

unsigned char vet[] = {0x0f, 0x05}; 

答えて

2

charタイプは、シングルバイトであるため、エンディアンが複数のバイトがメモリ上に配置されているかがわかりますしながら、unsigned char秒のベクトルのビット表現は、エンディアンに依存しません。 [1]で初期化されたC文字列とアレイとは異なり

がある場合したがって、0x0fがEOFを含む

0000111100000101 

を製造、0x05よりメモリに以前のアドレスに見られる

Cの文字列、中括弧初期化子で初期化された配列には終了マークはありません。

+0

だから私はエイベリーの2つの16進数の数字は8ビットだと思います。だから私はなぜこの運動がこのベクターの長さは18ビットではなく24で与えられるのですか? unsigned char vet [] = {0xBC、0xFF、0x01}; – Caramelleamare

+1

@caramelleamare私は、各文字を6ビットにすることとは別に、3バイトで18ビットをどのように数えるのか分かりません。私は間違いなく残りの6ビットがどこにあるのか教授に尋ねるでしょう。 – dasblinkenlight

+0

Infact私は尋ねたが、私はまだ答えを受け取り、私はどのようにエクササイズをするのか理解していない! charは6ビット長であるとはみなされません。この演習では、与えられたベクトルの0ビットの最小と最小の部分列を見つけるように求められます。 – Caramelleamare

0

まあ、ベクトルがあるので、もし:

unsigned char vet[] = { 0xBC,0xFF,0x01 } 

ビット表現は次のようになります。何のエンドマークがないため

101111001111111100000001 

そして、その長さはrigth、24ビットのですか?