1
#include <stdio.h>
#include <math.h>
int main() {
long long int bin;
int dec=0,i;
scanf("%lld", &bin);
for(i=0; bin!=0; i++){
if(bin%10==0 || bin%10==1){
dec+=(bin%10)*pow(2,i);
bin/=10;
}
else {
printf("Invalid Binary number!!\n");
return 0;
}
}
printf("%d\n", dec);
return 0;
}
我使這個程序將二進制轉換爲十進制。 網上有很多代碼,但我想知道 這段代碼是否一切正常?這個二進制到十進制的程序是否正確?
當你嘗試它時,它是否給你正確的結果?這不是主要的測試嗎? – AntonH
@AntonH也許有人認爲,如果代碼包含未定義的行爲,它實際上可以給他們鼻惡魔。 –
@EugeneSh。我看到的唯一UB發生在'scanf()'失敗時。 – EOF