한 편의 튜 토리 얼 은 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.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:
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]) #               ,          
앞에서 말 했 듯 이 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])
 
 파 이 썬 바 이 너 리 변환(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에 따라 라이센스가 부여됩니다.