誰かがこのC++プログラムの仕組みを助けてくれますか?それは10進数を2進数に変換します。なぜ左シフトと右シフトが使われるのですか?このC++プログラムの仕組みは?
void static inline unsignedToBinary(unsigned x, char*& bin)
{
bin = (char*) malloc(33);
int p = 0;
for (unsigned i = (1 << 31); i > 0; i >>= 1)
bin[p++] = ((x&i) == i) ? '1' : '0';
bin[p] = '\0';
}
これは、デバッガを使用する方法を学ぶ絶好の機会です。変数を見ながら行単位でステップ実行します。 – drescherjm
なぜですか?バイナリなので。 – LogicStuff
'bin =(char *)malloc(33);'については、std :: vector静的インラインunsignedToBinary(unsigned x) 'と' std :: vector bin(33); 'または少なくとも 'bin = new char [33];' binにあったものが流出していないことを確認するチェックがありますか? –
user4581301