返回工具列表

Base

进制转换工具

在线进行二进制、八进制、十进制、十六进制互转,任一输入框输入后自动同步其他进制,并提示非法格式。

进制输入

进制转换规则

按权展开

任意 N 进制数都可以按位展开:每一位数字乘以 N 的位权,再求和得到十进制。

101010₂ = 1×2⁵ + 0×2⁴ + 1×2³ + 0×2² + 1×2¹ + 0×2⁰ = 42₁₀

十进制转其他进制

用目标进制不断除以商,记录每次余数,最后把余数倒序排列。

42 ÷ 16 = 2 ... 10(A)
2 ÷ 16 = 0 ... 2
42₁₀ = 2A₁₆

合法字符

N 进制只允许使用小于 N 的数字。大于 10 的进制继续使用字母 A-Z 表示 10-35,例如十六进制的 A 表示 10,三十六进制的 Z 表示 35。

0b101010 = 0o52 = 42 = 0x2A

常见语言进制转换代码

JavaScript

const value = BigInt("42");
const binary = value.toString(2);
const octal = value.toString(8);
const hex = value.toString(16).toUpperCase();

Python

value = int("2A", 16)
binary = bin(value)[2:]
octal = oct(value)[2:]
hex_value = hex(value)[2:].upper()

Java

long value = Long.parseLong("2A", 16);
String binary = Long.toString(value, 2);
String octal = Long.toString(value, 8);
String hex = Long.toString(value, 16).toUpperCase();

Go

value, _ := strconv.ParseInt("2A", 16, 64)
binary := strconv.FormatInt(value, 2)
octal := strconv.FormatInt(value, 8)
hex := strings.ToUpper(strconv.FormatInt(value, 16))

C#

var value = Convert.ToInt64("2A", 16);
var binary = Convert.ToString(value, 2);
var octal = Convert.ToString(value, 8);
var hex = Convert.ToString(value, 16).ToUpperInvariant();

PHP

$value = intval("2A", 16);
$binary = base_convert((string)$value, 10, 2);
$octal = base_convert((string)$value, 10, 8);
$hex = strtoupper(base_convert((string)$value, 10, 16));