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));