0
我試圖將int轉換爲4位數組,以便我可以使用樹莓派的GPIO輸出它們。我正在用C編程。我目前的功能是:將int轉換爲GPIO的字節
#include <stdio.h>
char *binaryToAbits(unsigned int answer, char *result) {
if(answer>1)
{
result=binaryToAbits(answer-1,result);
}
*result='0'+(answer & 0x01);
return result+1;
};
int main(void) {
unsigned int numToConvert=2;
char ascResult[]={0,0,0,0};
int i;
*binaryToAbits(numToConvert,ascResult)='\0';
for(i=0;i<4;i++)
{
if(ascResult[i]!='1') ascResult[i]='0';
}
for(i=3;i>=0;i--)
{
printf("%c\n",ascResult[i]);
}
printf("\n");
return 0;
}
問題是數組的信號計算不正確。
我真的沒有看到)在'binaryToAbits使用遞歸的點('。一個簡單的'for()'循環會簡單得多,而且速度可能要快很多。無論如何,你可以嘗試修改[這個問題]的答案(https://stackoverflow.com/q/111928/1679849)。 –
您應該嘗試生成一個最小,完整,可驗證的示例(https://stackoverflow.com/help/mcve)。特別是你應該包括你期望的結果(也可能是你實際得到的結果)的解釋。我對你的'binaryToAbits'的測試給出了合理的結果 - 但你已經指出這個函數的行爲是錯誤的。 – skyking
你能提供一個你的輸入看起來像什麼樣的例子,你希望你的輸出看起來像什麼? – Fabien