Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 16진수 문자열을 int(정수)로 변환하는 방법

Python에서 16진수 문자열을 정수(int)로 변환하기

16진수 문자열은 일반적으로 "0x" 접두사를 포함하고 있습니다. 이 접두사가 붙어 있는 유효한 문자열이라면 int(string, 0)을 사용해 간단히 정수로 변환할 수 있습니다. 여기서 두 번째 인자로 전달하는 0은 함수가 접두사를 기준으로 진법을 자동으로 판단하도록 지시하는 역할을 합니다.

>>> int("0xfe43", 0)
65091

"0x" 접두사가 없는 경우

문자열에 "0x" 접두사가 없다면, 진법을 명시적으로 지정하기 위해 0 대신 16을 전달하면 됩니다.

>>> int("fe43", 16)
65091

추가로 알아두면 좋은 사항

이 방법은 대소문자를 모두 지원하므로 "FE43"이나 "Fe43" 같은 문자열도 동일하게 변환됩니다. 또한 문자열 앞뒤의 공백은 자동으로 무시되며, 음수 값이 필요한 경우 int("-0xfe43", 0)처럼 부호를 함께 사용할 수 있습니다.

단, 유효하지 않은 16진수 문자(예: "xyz")가 포함된 문자열을 변환하려고 하면 ValueError가 발생하므로, 외부 입력을 다룰 때는 예외 처리를 함께 고려하는 것이 좋습니다.