如何將無符號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