0
16進数をビンに変換しようとしています。私がビット(0x101)を呼び出すと、それは明らかに間違っている00011を印刷します。私はかなり確かにforループです。何か案は??Cのビンへの16進数
int hextobin (int n){
char buffer[33];
if(n==0) {
putchar('0');
return 0;
}
char *cp = buffer + 32;
*cp = 0;
for(int i =0;i <=sizeof(n); i++){
--cp;
if(n & 1) *cp = '1';
else *cp = '0';
n >>= i;
}
printf(cp);
return 0;
}
どうすればこの問題を解決できますか?私はその行をどこか別の場所に移動しますか? – user1386132
'while(n)'の代わりに、変換したい各ビットに対してfor()ループを実行する必要があります。例えば'for(int i = 0; i <= sizeof(n); i ++)'または同様のもの。私はC言語で働いていたので長い間されていたので、そのままでは動作しませんが、あなたを動かすのに十分なはずです。 –
'for(int i = 0; i <= sizeof(n); i ++){ --cp; if(n&1)* cp = '1'; else * cp = '0'; n >> = i; } 'これは私のforループです。まだ正しいことを印刷していない。 – user1386132