#15559: 提供另一種想法--位元推移


giant0620 (BlenderWang)


核心寫法如下:

unsigned int b;

for(b = 2147483648;b;b>>=1)

{

if(b&a)

{

for(;b;b>>=1)

printf(b&a?"1":"0");

break;

}

else

{

printf("0");

break;

}

}

基本上是把存在記憶體的二進位數直接呈現出來

所以不適合用來轉換負數

#15560: Re:提供另一種想法--位元推移


giant0620 (BlenderWang)


核心寫法如下:

unsigned int b;

for(b = 2147483648;b;b>>=1)

{

if(b&a)

{

for(;b;b>>=1)

printf(b&a?"1":"0");

break;

}

else

{

printf("0");

break;

}

}

基本上是把存在記憶體的二進位數直接呈現出來

所以不適合用來轉換負數

抱歉修改一下:

unsigned int b;

for(b = 2147483648;b;b>>=1)

{

if(b&a)

{

for(;b;b>>=1)

printf(b&a?"1":"0");

break;

}

if(a==0)

{

printf("0");

break;

}

}

條件式打錯了