16진수 8진수
2024. 3. 29. 00:29ㆍ정보처리,전산/자료구조
반응형
■ 16진수
컴퓨터 메모리 주소와 메모리 오프셋을 더 간결하게 표현할 수 있게 하고, 주소 간의 관계를 시각적으로 파악하기 쉽게 한다. 연산에서는 데이터의 각 비트를 개별적으로 조작, 색상 채널(RGB 또는 RGBA)을 표현, 상수나 메모리 주소 등을 16진수로 표현하여 코드의 가독성을 높이고 상수를 식별하기 쉽게 만든다.
def binary_to_hex(binary):
# 입력된 이진수를 뒤집다.
binary = binary[::-1]
# 4의 배수가 되도록 왼쪽에 0을 채웁니다.
binary = binary.zfill((len(binary) + 3) // 4 * 4)
hex_digits = '0123456789ABCDEF' # 16진수에 해당하는 문자들이다.
hex_result = ''
for i in range(0, len(binary), 4):
# 4비트씩 묶어서 16진수로 변환한다.
four_bits = binary[i:i + 4]
hex_digit = hex_digits[int(four_bits, 2)]
hex_result += hex_digit
# 만들어진 16진수를 뒤집어서 반환한다.
return hex_result[::-1]
# 테스트
binary_number = '110110101'
hex_number = binary_to_hex(binary_number)
print("2진수", binary_number, "는 16진수", hex_number, "로 변환된다.")
# 이진수를 5자리로 맞추기 위해 왼쪽에 0을 채우는 예제
binary = "101"
binary = binary.zfill(5)
print(binary) # 출력: "00101"
# 이진수를 5자리로 맞추기 위해 오른쪽에 0을 채우는 예제
binary = "101"
desired_length = 5
# 오른쪽에 0을 추가하여 문자열 길이를 늘린다.
while len(binary) < desired_length:
binary += '0'
print(binary) # 출력: "10100"
■ 8진수
하드웨어와 직접 상호 작용하는 저수준 프로그래밍에서 특정 레지스터나 플래그를 설정하거나 제어할 때 8진수가 특정 비트 패턴을 나타내는 데 사용될 수 있다.
def binary_to_octal(binary):
# 3비트씩 묶어서 처리하기 위해 오른쪽으로 쉬프트한다.
binary = binary[::-1] # 입력된 이진수를 뒤집다.
binary = binary.zfill((len(binary) + 2) // 3 * 3) # 3의 배수가 되도록 왼쪽에 0을 채웁니다.
octal = ''
for i in range(0, len(binary), 3):
# 3비트씩 묶어서 8진수로 변환한다.
three_bits = binary[i:i + 3]
octal_digit = int(three_bits, 2)
octal += str(octal_digit)
# 만들어진 8진수를 뒤집어서 반환한다.
return octal[::-1]
# 테스트
binary_number = '110110101'
octal_number = binary_to_octal(binary_number)
print("2진수", binary_number, "는 8진수", octal_number, "로 변환된다.")
반응형
'정보처리,전산 > 자료구조' 카테고리의 다른 글
삽입 정렬 insertion Sort (0) | 2024.07.22 |
---|---|
ArrayList LinkedList (0) | 2024.04.26 |
이진탐색 binary search (0) | 2024.03.15 |
포인터 문제 c로 분석 (0) | 2024.01.01 |
정적변수 static. Java코드로 분석 (1) | 2023.12.31 |