반응형
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#include <math.h>
#include <stdio.h>
int neq(long long abc);
int main()
{
long long a; // 2진수로 입력하므로, int의 범위를 벗어날 수 있어 long long 사용
printf("이진수 입력하시오: ");
scanf("%lld", &a); // long long => % lld
printf("%lld = %d\n", a, neq(a)); // 10진수가 아니라 8,16진수로 빌드하고 싶으면 %d대신 %o,%x사용.
return 0;
}
int neq(long long abc)
{
int oac = 0, i = 0, n;
while (abc != 0) {
n = abc % 10;
abc /= 10;
oac += n * pow(2, i);
++i;
}
return oac;
}
|
cs |
간단하게 설명하면 이진수를 10으로 나눈 나머지를 10으로 나눈 값이 0이 아니면 2의 제곱을 더하는 것이다.
반응형