0

ARM の割り当てのために C で uVision 4 をコーディングしています。理解できないようですが、文字列「536876144」を取得し続けるたびに。

int main(void) {

    int binary[8] = {0,0,0,0,0,0,0,0};//I want this array as integers (for binary terms), therefore i can toggle each number as 1 or 0, corresponding to the input.
    char stringbinary[9]; //string for recording the value of the converted integer array
    sprintf(stringbinary, "%d", binary);//conversion of the array to string
    printf("%s\r\n",stringbinary);//printing the value
          .............
          .............

          if(input=1){
          binary[0]=1 - binary[0]; // I have the each value of the array to toggle with activation
          }

}

何時間ものコーディングで疲れているからかもしれません。シンプルで基本的なものだと確信していますが、見つけられないようです。

4

1 に答える 1

2

あなたの声明:

sprintf(stringbinary, "%d", binary);//conversion of the array to string

は、整数の配列を文字列に変換する方法を誤解していることを示しています。

上記の行は のアドレスを取得し、binaryそれを整数に変換して、アドレスを整数として出力します。

数字の間にスペースを入れずに印刷binaryしたい場合は、次を使用できます。stdout

for (i = 0; i < 8; ++i )
{
   printf("%d", binary[i]);
}
print("\n");

必ず行を追加してください

int i;

forそのループを使用する前に、関数の開始時に。

于 2014-05-28T06:12:00.063 に答える