我嘗試創建mpegts演示文稿時間戳。它是5個字節的長度。我在VLC播放器的源代碼中找到了解決方案。看起來像這樣(在C lang代碼中):如何在Java中將位寫入字節數組?
bits_write(&bits, 4, i_pts_dts); // '0010' or '0011'
bits_write(&bits, 3, i_pts >> 30);
bits_write(&bits, 1, 0x01); // marker
bits_write(&bits, 15, i_pts >> 15);
bits_write(&bits, 1, 0x01); // marker
bits_write(&bits, 15, i_pts);
bits_write(&bits, 1, 0x01); // marker
i_header_size -= 0x5;
這意味着我必須從40位收集5個字節。例如,我需要2350個十進制數字中的5個字節。二進制觀點:
VLC操作後,我必須有這個二元觀點:
0010 000 1 000000000000000 1 000100100101110 1
十六進制查看:
21 00 01 12 5D
我怎麼能做到這一點在Java中?
另外我在GitHub上發現了Java解決方案:https://github.com/taktod/myLib/blob/master/myLib.MIT/myLib.container.mpegts/src/main/java/com/ttProject/container/mpegts/field/PtsField.java 但是這種實現太困難了。對於一次性操作,有必要創造了太多的輔助類,如第1位,第2位,第3位,等等...
你確定你輸入如何位圖輸出字節,例如將它寫在紙上,然後使用[Java位操縱運算符](http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op3.html)來建立這個結果。 – Andreas
@Andreas,我瞭解位操作符。例如,我可以在字符串中處理40位,並在轉換爲長整型之後,但長整型具有4個字節的大小。 Double有8個字節。但我需要5個字節。我不知道我該怎麼做。 – Virkom