2016-04-26 3 views
-2

こんにちは、私の仲間のプログラマー、C-Programminニブルコンバータ

私はCプログラミングに新たなんだと私は本当にニブルコンバータを作成しようとするいくつかのタイプを苦労しています。

だから基本的に私は、私はifステートメントを使用したくないニブル= 0101

で印刷されなければならないニブル出力に進数(0-9) を変換するプログラムをプログラムします。

私は/%演算子を使用してみたいです。

誰でも私にどのようにしてやることができるか、どのようにアドバイスをすることができますか?

+0

ここにコードを記入してください。 [mcve] – sjsam

+0

参照ルックアップテーブルを使用しますか? –

答えて

1

私は「ニブル」は「4桁のバイナリ」を意味することを正しく理解していれば:

あなたはバイナリに小数を変換する方法を考える - あなたは最後の数字として残りを書き留め、2で割り。その後、商を2で割り、余りを第2から最後の数字として書き留めるなどのようにします。だから、

、それをコーディングする簡単な方法:

printf("%i%i%i%i\n", (i/8)%2, (i/4)%2, (i/2)%2, i%2); 
-1

あなたはこれを知られたくないのはなぜ?

#include <stdio.h> 
int main() 
{ 
    int c,i,m; 
    for (;;) { 
     c = getchar(); 
     for (i=3;;i--) { 
      m = 1 << i; 
      m &= c; 
      m >>= i; 
      m += '0'; 
      putchar(m); 
      if (i==0) break; 
     } 
     puts("\r\n"); 
    } 
    return 0; 
} 

code test

+0

OPは、あなたがこのコードを説明するのではなく、例を与える必要があります\ –

+0

ああ、本当に、私はオペレータを願っています>>「私は文は、私は/と%演算子を使用しようとする場合に使用したいいけない」*と言いますあなたはOPがコピー&ペーストするだけであることを知っています。 – imbearr

0

表ルックアップが容易です。
このように:

const char *table[] = { 
    "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", 
    "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111" 
}; 
int n; 
scanf("%d", &n); 
puts(table[n % 10]); 
+0

として来る* – SevenBits

+0

概念は非常に簡単です。私は説明が必要な難しい部分があるとは思わない。 – BLUEPIXY

+0

ザ・OPは彼はCに新しいものであると述べたので、彼は、ルックアップテーブルの目的を理解していない可能性があります。配列が理解できない場合は、ここで質問するよりも前に – SevenBits