#include <stdio.h> // 2진수를 10진수로 변환하기

int main()
{
int decimal = 0; // 10진수 초기값
int binary[4] = { 1, 1, 0, 1 }; // 배열 4개로 이루어진 2진수

int position = 0; // 자릿수
for (int i = sizeof(binary) / sizeof(int) -1; i >= 0; i--)// 배열의 개수 4 만큼 4번 계산
{
if(binary[i] == 1) // 배열의 요소가 1이면
decimal += 1 << position; // 1 (0001) 을 왼쪽으로 쉬프트 한 뒤 원래값과 더하여 저장
position++; // 1 2 3 4 순으로 올라감
}
// if문 저장 총 3번
// 배열 요소 중 1이 3번 나오니 총 3번 쉬프트 계산이 이루어짐 = 첫번째 계산은 0001에서 왼쪽 1칸 쉬프트 0010 = 2
// 두번째 계산에는 0이니 패스 세번째 계산에선 1이니 0001에서 왼쪽으로 2칸 쉬프트 0100 = 4
// 마지막 네번째 계산에선 1이니 0001에서 왼쪽으로 3칸 쉬프트 1000 = 8
// 2 + 4 + 8 = 13

printf("%d\n", decimal); // 총 더해진 값 출력

return 0;
}

연습문제 코드 해석 해봤는데 코린이 입장에서 봐주세요 ㅜㅜ