한 편의 튜 토리 얼 은 Python 진법 전환(10 진법 2 진법,8 진법,16 진법)을 배 울 수 있 습 니 다.
안내:
컴퓨터 가 데이터 교환 을 할 때 흔히 진 변환 과정 이 있다.우 리 는 컴퓨터 가 0 과 1 만 알 고 메모리 시스템 에서 기본적으로 이 진 을 바탕 으로 연산 을 하 는 것 을 알 고 있다.그러나 가끔 은 데이터 가 너무 커서 저장 관 리 를 편리 하 게 하기 위해 컴퓨터 는 16 진 으로 데 이 터 를 저장 하지만 어떻게 데이터 변환 을 실현 할 수 있 습 니까?
우리 인 류 는 열 손가락 으로 되 어 있 기 때문에 자 연 스 럽 게 십 진법 을 사용 합 니 다.우리 가 숫자 를 10 까지 셀 때마다 0 을 다시 세 기 시 작 했 습 니 다.그래서 십 진 일 을 만나면 이렇게 되 었 습 니 다.
다른 진법 에 대해 서도 마찬가지 입 니 다.예 를 들 어 가장 흔히 볼 수 있 는 2 진법,즉 2 진 1 을 만나면 천천히 유추 하 는 것 입 니 다.그래서 수학의 세 계 는 얼마나 기묘 합 니까?
오늘 여러분 께 가 져 온 것 은 Python 을 사용 하여 진법 전환 을 실현 하 는 것 입 니 다.내용 은 다음 과 같 습 니 다.
dec(10 진법)->bin(2 진법)
dec(10 진법)―>oct(8 진법)
dec(10 진법)->hex(16 진법)
2.각종 진법 소개
전환 하기 전에 우 리 는 먼저 아래 의 각종 진 도 를 이해한다.
10 진법(Decimal)
우리 가 잘 아 는 십 진법 은 사실 0 부터 9 까지 센 후에 10 까지 뛰 는 것 이다.이렇게 하면 10 이 되 고 모두 가 항상 세 는 것 이다.
바 이 너 리
이 진 동 리 는 0 부터 00(앞의 0 은 절약 할 수 있 지만 더 좋 은 설명 을 위해 보류)이 되 고 01 이 되면 10[10 진법 에 대응 하 는 3]이 되 고 그 다음 에 11[10 진법 에 대응 하 는 4],100[10 진법 중의 5]이 된다.이런 식 으로 유추 하 다
이 진 영어 단 어 는 binary 이기 때문에 컴퓨터 연산 과정 에서 이 진 을 사용 하면 다음 과 같은 방법,0b 11(4),0b 1101(13)등 을 사용 합 니 다.
8 진법(Octal)
이 진 을 이해 하면 8 진 을 이해 하 는 것 이 쉬 워 집 니 다.8 진 은 8 진 1 을 만 나 고 범 위 는 0~7 입 니 다.2 진 을 비교 해 보면 이해 하기 쉽 습 니 다!!
16 진수(16 진수)
16 진법 은 상대 적 으로 복잡 할 수 있 으 며 16 진법 은 숫자 0~9 와 영문 자모 A-F(대소 문자 임 의)로 표시 되 기 때문에 A 는 10,F 는 15 를 대표 한다.왜 컴퓨터 분야 에서 16 진법 의 용 도 는 이렇게 광범 위 합 니까?
여러분 에 게 대 비 를 보 여 드 리 겠 습 니 다.
데이터 가 비교적 클 때 이 진 은 분명히 그렇게 사용 하지 않 고 16 진 을 사용 하면 매우 간단 하 다.
16 진법 의 운용 분 야 는 이 뿐만 이 아니다.예 를 들 어 원화 사가 색 을 맞 출 때 RGB 3 원색 을 사용 하면 256 x 256 x 256 의 조합 이 있다.우 리 는 16 진법 을 사용 할 수 있다.각 색 을 16 진수 문자 로 비교 하면 매우 편리 하 다.다음은 내 가 전에 색 을 맞 출 때 쓴 간단 한 C 언어 애플 릿 이다.어,뭔 가 주제 에서 벗어난 것 같 아.하하,몰라.
#include<stdio.h>
#include<stdlib.h>
int main()
{
printf("rgb 16
");
int a,b,c,d;
while(d != 2){
printf(" 1 , 2
");
scanf("%d",&d);
scanf("%d%d%d",&a,&b,&c);
printf("[%x %x %x]
",a,b,c); //%x
}
return 0;
}
3.Python 코드 로 변환 완료3.1 10 진법 에서 2 진법 으로 전환
나 는 언제 처음으로 진법 전환 을 배 웠 는 지 잘 기억 나 지 않 는 다.진법 전환 에 자주 사용 하 는 방법 은 2 에 대해 여 수 를 취한 다음 에 나머지 반전 을 얻 는 것 이 바로 우리 가 필요 로 하 는 2 진법 이다.예 를 들 어 내 가 10 진법 13 의 2 진법 이 얼마 인지 계산 해 야 한다.
이것 도 선생님 께 서 우리 에 게 가르쳐 주신 방법 이자 우리 가 처음으로 진법 전환 을 접 했 을 때 목표 수 num 대 2 로 여 수 를 구하 고 상업 이 0 일 때 까지 끝 난 다음 에 여 수 를 조합 하여 수출 하고 우리 가 원 하 는 2 진수 이다.어떤 학우 들 은 이것 이 13 에 대응 하 는 2 진수 라 는 것 을 어떻게 이렇게 확신 할 수 있 느 냐 고 물 었 다.
대답 하 다.
2 진법 의 특수성 으로 인해 숫자 는 오른쪽 에서 왼쪽으로 20 x 1+21 x 0+22x 1+23 x 1=1+4+8=13 에 대응 하여 속기 구결 을 하나 드 립 니 다.1,2,4,8,16,32,64,128,256,512,1024.각각 20~210 대응 하 는 값 입 니 다.
그래서 생각 이 생기 면 우 리 는 즐겁게 코드 를 칠 수 있다.
#
def dec_to_bin(num): #
l = [] #
if num<0: #
return "-"+ dec_to_bin(abs()) # ,
while True:
num,reminder=divmod(num,2)\#짧 은 나눗셈 은 2 에 대해 각각 나눗셈 과 여 수 를 얻 을 수 있 습 니 다.이것 은 Python 특유 의 내 장 된 방법 으로 각각 상업 과 여 수 를 얻 을 수 있 습 니 다.l.append(str(reminder)\#획득 한 나머지 를 문자열 에 저장 합 니 다.
if num==0:\#앞 에 대응 하면 0 이면 끝 입 니 다.
return".join(l[:-1])\#목록 에 있 는 문자열 을 역순 으로 연결 하여 바 이 너 리 문자열 을 얻 습 니 다.
3.2 십 진법 8 진법
2 진법 의 전환 을 이해 하면 8 진법 만큼 어렵 지 않다.마찬가지 로 목표 수 num 대 8 구 상,나머지 를 남 겨 두 고 이 생각 대로 갑 니 다.검사 할 때 도 마찬가지 로 2n 을 8 로 교체 하면 된다.
코드 보기:
2 진법 과 는 거의 다 르 지만 다르다.
#
def dec_to_oct(num):
l = []
if num<0:
return "-"+ dec_to_bin(abs(num)) # ,
while True:
num, reminder = divmod(num,8) # , 2 , 、
l.append(str(reminder)) #
if num == 0:
return "".join(l[::-1]) # ,
3.3 10 진법 16 진법앞에서 말 했 듯 이 16 진법 은 2 진법 에 비해 8 진법 은 좀 복잡 하지만 방법 은 같다.
# ( , , A-F, )
def dec_to_hex(num):
base = [str(x) for x in range(10)] +[chr(x) for x in range(ord('A'),ord("A")+6)] # 0 ~ 9 base , A ~ F
l = []
if num<0:
return "-"+dec_to_hex(abs(num))
while True:
num,rem = divmod(num,16) #
l.append(base[rem])
if num == 0:
return "".join(l[::-1])
마지막 으로 운행 결 과 를 보 니 편리 하지 않 습 니까?물론 Python 은 내 장 된 방법 이 있 습 니 다.예 를 들 어 우 리 는 10 진 수 를 직접 입력 하고 bin(n)을 통 해 2 진 으로 전환 하 며 oct(n)는 8 진 으로 전환 하고 hex(n)는 16 진 으로 전환 합 니 다.하지만 원 리 를 다음 과 같이 이해 하 는 것 이 필요 합 니 다.그 렇 죠?파 이 썬 바 이 너 리 변환(10 진법 바 이 너 리,8 진법,16 진법)을 배 우 는 튜 토리 얼 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 바 이 너 리 전환 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 십시오.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.