#include <stdio.h>
#include<string.h>
int main(void)
{
int bit,i,n ;
unsigned long decimal=0;
char binary[33];
printf("input binary number");
scanf("%32s",binary);
n=strlen(binary);
for(i=0;i<n;i++)
{
bit=binary[i]-'0';
decimal=(decimal<<1)+bit;
}
printf("decimal of %s is %lu",binary,decimal);
return 0;
}
Программа для преобразования двоичного числа в decimal.program работает отлично, но я не понимаю логику для цикла.Какова логика для цикла в этой программе для преобразования двоичного числа в десятичное число
Что вы не понимаете? [Бит-манипуляция] (http://en.wikipedia.org/wiki/Bit_manipulation)? – devnull
Цикл 'for' просто выполняет итерацию по введенным двоичным цифрам. что тебя смущает? –
BTW, он может работать правильно для правильного ввода. Но вы получите очень интересные результаты, если вы вводите, например, какие-либо не двоичные цифры или альфа-символы. –