tools / binary
binary/
文本和二进制(0 和 1)互转,每个字节 8 位。字符集可选 UTF-8、GBK、UTF-16 等。
文本
二进制
常见问题
一个汉字转成二进制是多少位
每个字节固定写成 8 位,位数取决于字符集。UTF-8 下常见汉字占 3 个字节,是 24 位,「中」是 11100100 10111000 10101101;GBK、GB2312 下占 2 个字节,是 16 位,「中」是 11010110 11010000;英文字母和数字占 1 个字节,A 是 01000001。
二进制转文本提示位数不是 8 的倍数怎么办
每 8 位对应一个字节,去掉空白后的位数必须是 8 的倍数,否则会提示再补几位或去掉末尾几位。多半是复制时少了或多了几位;有些来源把每个字节只写有效位,比如 A 写成 1000001(7 位),这种要先在前面补 0 凑满 8 位,本工具不会自动补。
提示「不是 0 或 1」,或者带了 0b 前缀、逗号怎么办
只认半角的 0 和 1,空格、换行和制表符会被忽略。0b 前缀、逗号、短横线、全角的0和1都不认,会指出是第几个字符,先在文本编辑器里把它们删掉或替换掉再粘贴。
二进制转文本提示解出的字节不是有效文本,或者结果是乱码怎么办
说明这串二进制不是按当前字符集编码的,换一个字符集试。中文内容最常见的是 UTF-8 和 GBK。本工具不会把解不出来的字节硬显示成乱码,只有 ISO-8859-1 例外,它的每个字节都对应一个字符,不会报错,但中文会变成乱码字符。GBK 和 GB2312 都用浏览器自带的 GB18030 解码器,比 Python、Java 宽松,选 GB2312 也能解出 GBK 才有的字。如果这串数据本来就不是文字(图片、压缩包),选什么字符集都解不出来。
输入数字 10 为什么得到的不是 1010
本工具转的是文字的字节,不是数值。输入的 10 是字符「1」和「0」两个字符,按 UTF-8 是 00110001 00110000。要把十进制数 10 变成二进制数 1010,需要用进制转换工具,这里做不了。
分隔符选「空格」和「无」有什么区别
选「空格」时每个字节之间空一格,选「无」时连成一整串,每个字节的位都是从高到低排列,最左边是最高位。解码时两种写法都认,空格放在哪里不要求对齐字节边界,只看去掉空白后的总位数。
UTF-16 和 UTF-32 的结果为什么那么长
UTF-16 每个字符至少 2 个字节,开头还多 FE FF 两个字节(11111110 11111111),所以「中」是 11111110 11111111 01001110 00101101。UTF-32 每个字符固定 4 个字节,「中」是 00000000 00000000 01001110 00101101,两者都是大端。
输入的内容会上传吗
不会。转换在浏览器里完成,不发任何请求,也不保存。