2017-03-06 6 views
-1

ベース10をベース3に変換しました。例えば、ベース10の16で、ベース3の121です。ビット値を使用してベース3を符号化する

ベース10からベース3に変換できる簡単なアルゴリズムを作ったのですが、ここで問題が発生します。代入では、2ビットを使って基数3の数値を格納する必要があると言います。 0
01:1
11:事前に2

おかげしたがって121は私がC.

00でこれを実装する方法を011001.わからないだろう。

+1

にビットを格納することができますか? –

+0

3の代わりに4を掛けてください。 –

+0

ちょうど普通です。たとえば、入力:16(base10);出力:011001. – Zialt

答えて

0

あなたはあなた自身のタイプを行い、その後、ベース10のためのあなたの表現が何であるかを組合

typedef struct { 
     unsigned int bits : 2; 
} DIGIT; 

union int_b3 { 
    DIGIT digits[8]; 
    // manipulate all together 
    int raw; 
} 

// create number 
int_b3 my_number; 

// Set individual digits 
my_number.digits[0].bits = 1; 

// Process the number all together 
my_number.raw <<= 2; 
+0

ポイント。更新されたタイプ - より多くの構造を強調しようとしていた –

関連する問題