如何将无符号8位PCM流(0-255)转换为带符号8位PCM流(-128-127)。它是否像每个无符号字节中减去128那么简单,使得0变成-128而255变成127?还是更复杂? 谢谢!将8位无符号PCM转换为8位带符号PCM
回答
为什么不试试? 在我看来,它应该就够了,但我不知道你在用什么语言。
使用带符号和无符号整数/字符时记住负值的内部表示法是二进制补码。 最安全的是计算signed int
大小以避免溢出。
我在看一些我没有写的代码,它只是将无符号转换为signed而奇怪的东西。事实上,它的功能如下:“signed char result =((signed char)(x + 128))* 257;” (C代码)。变量“x”是“unsigned char”类型,并包含要转换的示例。我根本没有得到这个代码。 * 257从哪里来?但它的作品!? – Andy
然后乘以257,然后夹紧到字符大小就像乘以1,所以它应该工作,但你可以离开257。也许原来的程序员想要扩大0-1的范围,并且有问题,但是谁知道? – Nobody
是的,好像忽略了* 257不会改变任何东西。所以我希望可以删除它并且不要破坏任何东西......也许这是一些古老的编译器bug的解决方法! – Andy
对于您在评论中发布的代码,减去128会颠倒上一次操作,并会为您提供签名数据。
- 1. 将16位带符号的PCM转换为带有符号的16位
- 2. 转换16位PCM到8位
- 3. 8位PCM信号上的FFT
- 4. 转换无符号短于符号短为音频PCM样本
- 5. QT转换16位QImage为8位无符号字符在QT
- 6. Qt5将字符转换为8位无符号值
- 7. 将4位8位无符号整数转换为32位浮点型
- 8. 8位无符号字符数组到无符号字符
- 9. 将16位pcm音频下采样为8位Android
- 10. 将原始二进制8位无符号文件转换为16位无符号的Python成像库
- 11. 如何将无符号的24位int转换为带符号的int并将符号扩展为32位?
- 12. 将带符号的13位值转换为带符号的16位
- 13. 将值转换为无符号32位
- 14. 音频编码与PCM转换问题32位哟PCM 16位
- 15. 在医学图像中将有符号16位转换为无符号8位时有什么好处?
- 16. 将8个字节转换为带符号的长整型(64位)
- 17. Java将十六进制转换为带符号的8位代码
- 18. javascript:将十六进制值转换为带符号的8位整数
- 19. MIPS转换32位带符号2s-com数字,十进制数字或8位带符号十六进制
- 20. 将n位整数从无符号转换为有符号
- 21. 如何将G.726 ADPCM信号转换为PCM信号?
- 22. 在python中将字符串转换为8位有符号整数
- 23. 将无符号16位int转换为C#中有符号16位int int#
- 24. 如何将有符号的32位int转换为无符号的32位int?
- 25. 将32位浮点转换为16位PCM范围
- 26. 6502使用带符号或无符号8位寄存器(JAVA)吗?
- 27. 将UIImage转换为8位
- 28. 将PCM转换为MP3/OGG
- 29. PHP,将UTF-8转换为ASCII 8位
- 30. SQL Server数据类型:将8位无符号数存储为INT或CHAR(8)?
也许你应该添加你想用来解决这个问题的编程语言的标签。 – Nobody