큰 수를 위한 Hex ↔ 10진수 변환기

calldata, 스토리지 슬롯, RPC 응답의 0x 값을 붙여넣어 10진수로 확인하거나 반대로 변환하세요. 임의 정밀도를 지원하며 EVM 작업에 필요한 32바이트 워드 패딩과 부호 있는 해석을 제공합니다.

10진수, 0x hex, 0b 2진수, 0o 8진수, a–f가 포함된 접두사 없는 hex, 음수, 그리고 구분자로 밑줄이나 쉼표를 허용합니다. 크기 제한 없음.

브라우저에서 JavaScript로 계산됩니다. 주소는 절대 업로드되거나 저장되지 않습니다.

Hex-10진수 변환기란 무엇인가요?

Hex-10진수 변환기는 0xde0b6b3a7640000 같은 16진수 문자열을 읽어 같은 숫자를 10진수(여기서는 1,000,000,000,000,000,000, 즉 1018)로 돌려주며, 그 반대도 수행합니다. 블록체인 작업에서는 숫자가 최대 256비트이므로 변환기는 임의 정밀도 정수를 사용해야 하고, EVM이 사용하는 32바이트 0 패딩 워드와 부호 있는(int256) 해석도 함께 보여줘야 합니다.

유용한 값

10진수Hex의미
1,000,0000xf42401 USDT / USDC (소수점 6자리)
1,000,000,0000x3b9aca00wei 단위의 1 gwei; lamports 단위의 1 SOL
10180xde0b6b3a7640000wei 단위의 1 ether
264 − 10xffffffffffffffffuint64 최댓값
2128 − 10xffff…ffff (f 32개)uint128 최댓값
2256 − 10xffff…ffff (f 64개)uint256 최댓값, "무제한" approve 수량

예시

스토리지 슬롯을 읽으면 0x00000000000000000000000000000000000000000000000000000000000f4240이 반환됩니다. 앞의 0을 제거하면 0xf4240 = 15×164 + 4×163 + 2×162 + 4×16 + 0 = 983,040 + 16,384 + 512 + 64 = 1,000,000이며, 이는 소수점 6자리 단위로 1 USDT입니다. f가 64개인 워드는 uint256으로는 2256 − 1이지만 int256으로는 −1이며, 컨트랙트는 이렇게 -1을 저장합니다.

흔한 실수

일반적인 작업 흐름

  1. ABI 디코더의 calldata 분석 결과나 블록 익스플로러의 스토리지 슬롯에서 워드를 복사합니다.
  2. 여기에 붙여넣어 10진수 수량으로 읽은 뒤, 토큰 소수점 변환기나 이더리움 단위 변환기로 토큰의 소수점 자릿수로 나눕니다.
  3. 값이 0xffff…처럼 보이면 int256 행을 확인하세요. 음수이거나 "무한" allowance일 수 있습니다.

자주 묻는 질문

왜 일반 hex 변환기를 쓰면 안 되나요?

대부분은 64비트나 부동소수점 숫자를 거쳐 변환하기 때문에 약 16자리 이상의 10진수 자릿수를 조용히 잃어버립니다. EVM 워드는 256비트이므로 0xde0b6b3a7640000(1018) 같은 토큰 잔액만으로도 이미 깨집니다. 이 페이지는 임의 정밀도 정수를 사용합니다.

bytes32 행은 무엇인가요?

값을 32바이트(hex 64자)가 되도록 0으로 왼쪽 패딩한 것으로, calldata, 반환 데이터, 스토리지, 이벤트 데이터에서 워드로 나타나는 형태입니다.

int256은 어떻게 처리되나요?

부호 없는 값의 최상위 비트가 설정되어 있으면(2255 − 1보다 크면) 2의 보수로 나타내는 음수도 함께 표시합니다. 음수를 입력하면 컨트랙트가 저장할 32바이트 워드를 보여줍니다.

0x 없는 hex도 허용되나요?

네, 문자열에 a–f 문자가 하나 이상 포함되어 있으면 됩니다. 숫자만으로 된 문자열은 10진수로 읽히며, hex로 강제하려면 0x를 붙이세요.

hex를 10진수로 직접 변환하려면 어떻게 하나요?

각 자릿수에 오른쪽에서부터 0으로 시작하는 위치만큼 16의 거듭제곱을 곱한 뒤 모두 더합니다: 0x2a = 2×16 + 10 = 42. 문자 a–f는 10–15를 나타냅니다. 64자리 값은 계산이 번거로운데, 바로 그것이 이 페이지의 용도입니다.

이더리움 RPC 응답은 왜 hex를 사용하나요?

JSON-RPC 명세는 64비트 숫자만 지원하는 JSON 파서에서도 256비트 값이 손상되지 않도록 모든 수량을 앞자리 0이 없는 0x 접두사 hex 문자열로 인코딩합니다. 블록 번호, 잔액, 가스, nonce가 모두 이 방식으로 전달됩니다.

바이트 길이는 무엇을 알려주나요?

패딩 없이 숫자에 필요한 바이트 수입니다. 값이 uint8, uint64, uint128에 들어맞는지, 그리고 uint가 기대되는 자리에 주소 크기(20바이트)의 값이 전달되었는지 확인하는 데 유용합니다.