将 8 位无符号 PCM 转换为 8 位有符号 PCM

发布于 2024-11-24 20:05:07 字数 120 浏览 2 评论 0原文

如何将无符号 8 位 PCM 流 (0-255) 转换为有符号 8 位 PCM 流 (-128-127)。是不是就像从每个无符号字节中减去 128 这样 0 变成 -128,255 变成 127 一样简单?还是更复杂? 谢谢!

How can I convert an unsigned 8bit PCM stream (0-255) into a signed 8bit PCM stream (-128-127). Is it as simple as subtracting 128 from every unsigned byte so that 0 becomes -128 and 255 becomes 127? Or is it more complicated?
Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红ご颜醉 2024-12-01 20:05:07

你为什么不尝试一下呢?
在我看来应该足够了,但我不知道你使用的是什么语言。

当使用有符号和无符号整数/字符时,请记住负值的内部表示是二进制补码。
最安全的方法是按 signed int 大小进行计算以避免溢出。

Why dont you try it?
In my opinion it should suffice but I don't know what language you are using.

When working with signed and unsigned integer/char bear in mind that the internal representation for negative values is the two's complement.
Safest would be to calculate in signed int size to avoid overflows.

凉薄对峙 2024-12-01 20:05:07

对于您在评论中发布的代码,减去 128 将反转之前的操作并给出签名数据。

For the code you posted in your comment, subtracting 128 will reverse the previous operation and will give you the signed data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文