파이썬 10진수 2진수 변환 함수 - paisseon 10jinsu 2jinsu byeonhwan hamsu


파이썬 10진수 2진수 변환 함수 - paisseon 10jinsu 2jinsu byeonhwan hamsu

Python Hex, Decimal, Binary (16진수, 10진수, 2진수) 서로 변환하기

몇 진수의 값이든 십진수로 변환을 쉽게 할 수 있습니다.

파이썬에서 제공하는 int 함수를 사용하면 어떤 값이든 10진수로 변환 가능합니다.

  • int(value, base)

int의 Syntax는 위와 같습니다.

Option 값의 특성은 아래와 같습니다. 

  • value : string으로 된 변환하고 자 하는 수
  • base : value 값의 진수

16진수와 2진수 변환 함수는 아래와 같습니다.

  • hex(value)
  • bin(value)

value 값은 integer(정수) 값을 입력으로 받습니다.

16진수 수를 10진수 2진수 그리고 다시 16진수 수로 변환해 보기 예제

예제 코드>>

hex_value = "1f"
dec_value = int(hex_value, base=16)
bin_value = bin(dec_value)
hex_value2 = hex(dec_value)

print(hex_value)
print(dec_value)
print(bin_value)
print(hex_value2)

결과>>

1f
31
0b11111
0x1f

▣ 안녕하세요^^ 

이번장은 간단하게 10진수를 입력받아.

2진수를 바꿔 리스트에 저장해서 출력하는 코드를 공부해보겠습니다. 

▣ 매번 말씀드리지만, 

코딩은 정답이 없다고 생각합니다.

제 코드가 정답이라고 생각하지 마시고, 

제 코드는 참고만 하시고 여러분에 방법으로 10진수를 2진수로 바꿔보세요.

▣ 먼저 10진수를 2진수로 바꾸는 방법을 공부해보겠습니다. 

파이썬 10진수 2진수 변환 함수 - paisseon 10jinsu 2jinsu byeonhwan hamsu

▣ 그림판으로 그려서 글씨가 이상한 점 이해해주세요 ^^;;

10진수를 2진수로 바꾸려면 나누기를 진행하면 됩니다.

나누기를 진행할때마다 나머지를 이렇게 옆에 표시해주세요.

나누어지지 않을때까지 진행해주시고, 

나머지를 적은 부분은 화살표 방향으로 작성하면 이게 2진수입니다.

▣ 그럼 2진수를 10진수를 바꾸려면 2에 1승 2에 2승 2에 3승 이런 식으로 자리마다

곱하고 더해야하지만, 

그건 어려울수있으니 이렇게 1 - 2 - 4- 8 - 16 - 32 - 64 - 128 - 256 - 512 이렇게 

외우시면 계산하시기 편하실 겁니다. 

그리고 1인 부분 참인부분만 더해지면 10진수가 나오게 됩니다. 

자 그럼 코드로 구현해볼까요

파이썬 10진수 2진수 변환 함수 - paisseon 10jinsu 2jinsu byeonhwan hamsu

▣ 코드로 구현할때는 곱한 값과 나머지 값을 따로 관리해주신다고 생각하시고 

코드를 작성하시면 됩니다. 

그럼 코드를 작성하고 해석을 하나하나 함께 해보겠습니다.

먼저 num 변수에 10진수를 입력받습니다. 

그리고 2진수를 저장할 aList라는 이름에 리스트를 선언해주세요.

이제 반복문 부분이 중요합니다.

우리는 num에 값이 나누어지지 않을 때까지 나누기를 계속 진행해야 합니다.

그래서 whlie num!= 0 이 아닐 때까지 진행합니다. 

그리고 아까 위에서 이야기한 것처럼 리스트에는 나머지 값이 들어가고

num에는 계속 나눈 값이 들어가야겠죠?

num / 2를 연산하게 되면 결과 값이 실수형이 나오게 됩니다.

num // 2 을 하게 되면 정수형이 나오기 때문에 우리는 num //2로 진행했습니다.

그럼 whlie문을 통해서 num이 0이 될 때까지 계속 반복을 하고 

리스트에는 나머지들이 저장이 됩니다.

그럼 우리가 원하는 숫자만 저장이 되고 

print에서 결과를 확인하면

이상하게 반대로 나오는 걸 확인할 수 있습니다.

당연한 결과입니다. 우리는 연산한 나머지를 그대로 저장했기 때문입니다. 

그럼 어떻게 해야 할까요?

네 그럴 때 reverse() 함수를 하면 됩니다. 

파이썬 10진수 2진수 변환 함수 - paisseon 10jinsu 2jinsu byeonhwan hamsu

▣ 이렇게 aList.reverse() 함수를 사용하게 되면 

말 그대로 거꾸로 만들어줍니다. 

그리고 출력을 해보면 결과가 제대로 나오는 걸 확인할 수 있습니다.

다른 값도 진행해볼까요?

파이썬 10진수 2진수 변환 함수 - paisseon 10jinsu 2jinsu byeonhwan hamsu

▣ 11을 입력하게 되면 이렇게 2진수가 제대로 나오는걸 확인할 수 있습니다. 

▣ 오늘은 이렇게 10진수를 2진수로 변환하는 코드를 진행했습니다.

이런 방법도 있구나라고만 생각해주시고,

꼭 직접 10진수를 2진수로 바꾸는 연산을 손으로 해보시기 바랍니다.

그래야 코드를 이해하기 쉬우실 겁니다. 

그리고 여러분이 직접 이걸 함수로 바꿔보세요~~

새로운 시도를 하고 만들어야 코딩 실력이 많이 향상됩니다.

궁금하신 사항이나 질문 있으시면 댓글 남겨주세요.

그럼 다음장에서 뵙겠습니다.

▣ 포기하지 마세요!!! 저도 했습니다!!! 파이팅!!!