You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyAudio字节流格式解析及字节与整数转换差异的技术咨询

PyAudio字节流格式疑问解答

问题1:为何\r转13、\x0b转11,转换规则是什么?

这是ASCII码与字节的标准对应关系,和十六进制转换本质一致:

  • Python打印bytes类型时,会对字节做两种可读性优化处理:
    1. 如果字节对应可打印的ASCII字符(比如y对应ASCII码121),就直接显示字符本身;
    2. 如果字节是不可打印的控制字符,会用转义序列表示:
      • \r是回车符的转义写法,对应的ASCII十进制值就是13;
      • \x0b是十六进制表示的字节(0x0B),转成十进制就是11,对应垂直制表符;
      • 同理\n(换行符,十进制10)、\t(制表符,十进制9)都是ASCII控制字符的标准转义写法。
        你看到的整数数组,就是把每个字节直接转换成对应的十进制ASCII值,和字节流的转义表示完全等价。

问题2:打印的原始字节流为何没包含整数数组末尾的部分数值?

其实没有缺失,只是字节流的打印用了转义字符代替了直观的十六进制表示,两者是一一对应的:
拿第一组输出举例:
字节流b'y\x0b\xdc\x0b\xaf\x0b.\n"\t'对应的整数数组[121, 11, 220, 11, 175, 11, 46, 10, 34, 9]:

  • y → 121,\x0b →11,\xdc→220,\xaf→175;
  • .是可打印字符,对应ASCII码46;
  • \n是换行符,对应10;"是双引号,对应34;\t是制表符,对应9。
    第二组的\r对应13、\x00对应0,也是同样的道理。你觉得“缺失”的部分,只是被转成了更易读的转义字符而已,字节本身没有丢失。

内容的提问来源于stack exchange,提问作者yib

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 10:52:49