# 进制转换器

在二进制、八进制、十进制、十六进制以及 2 到 36 的任意进制之间转换，支持大数、补码和位视图。

https://codeknife.dev/zh/jinzhi-zhuanhuan/

## 功能

在二进制、八进制、十进制、十六进制以及 2 到 36 的任意进制之间转换数字。长数字的每一位都会保留，可显示 8、16、32 或 64 位的补码模式，并能逐位翻转。

## 使用方法

1. 在输入框或任意一行中输入或粘贴数字。
2. 选择**输入进制**、2 到 36 的**自定义进制**和**位宽**。
3. 查看其他行，点击某一位翻转它，然后复制结果。

## 示例

`255` 的二进制是 `1111 1111`，八进制是 `377`，十六进制是 `FF`。

8 位的 `-1` 用补码表示为 `1111 1111`，把 `FF` 按 8 位有符号读取又是 `-1`。

## 须知

- 支持前缀 `0b`、`0o`、`0x`，以及数字之间的下划线和空格。
- 数字不限于 64 位或 2^53；只有值能放入所选位宽时才显示位视图。
- 打开**将输入按补码模式读取**，可把 `FF` 读作 `-1` 而不是 255。

## 二进制如何表示负数？

计算机用补码存储负数：把所有位取反再加一。8 位时，-1 是 1111 1111，-128 是 1000 0000。同一模式按无符号读取是 255 或 128，因此位宽和符号都很重要。

## 常见问题

### 为什么这个转换器能处理大于 2^53 的数？

许多转换器使用浮点数，超过 9,007,199,254,740,992 就会丢失位数。本工具使用任意精度整数，因此长数字的每一位都会保留。

### 0x、0b 和 0o 前缀是什么意思？

它们在源代码中标明进制：0x 表示十六进制，0b 表示二进制，0o 表示八进制。可以输入也可以省略。数字之间的下划线和空格会被忽略。

### 这个工具会把我的数字发送到别处吗？

不会。一切都在浏览器中完成，您输入的内容不会发送到我们的服务器。