u8data.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. //将字节数组转成有符号的8位整型,大端字节序
  2. function toInt8(bytes) {
  3. return getView(bytes).getInt8();
  4. }
  5. //将字节数组转成无符号的8位整型,大端字节序
  6. function toUint8(bytes) {
  7. return getView(bytes).getUint8();
  8. }
  9. //将字节数组转成有符号的16位整型,大端字节序
  10. function toInt16(bytes) {
  11. return getView(bytes).getInt16();
  12. }
  13. //将字节数组转成无符号的16位整型,大端字节序
  14. function toUint16(bytes) {
  15. return getView(bytes).getUint16();
  16. }
  17. //将字节数组转成有符号的32位整型,大端字节序
  18. function toInt32(bytes) {
  19. return getView(bytes).getInt32();
  20. }
  21. //将字节数组转成无符号的32位整型,大端字节序
  22. function toUint32(bytes) {
  23. return getView(bytes).getUint32();
  24. }
  25. //将字节数组转成32位浮点型,大端字节序
  26. function toFloat32(bytes) {
  27. return getView(bytes).getFloat32();
  28. }
  29. //将字节数组转成64位浮点型,大端字节序
  30. function toFloat64(bytes) {
  31. return getView(bytes).getFloat64();
  32. }
  33. //将数值写入到视图中,获得其字节数组,大端字节序
  34. function getUint8Array(len, setNum) {
  35. var buffer = new ArrayBuffer(len); //指定字节长度
  36. setNum(new DataView(buffer)); //根据不同的类型调用不同的函数来写入数值
  37. return new Uint8Array(buffer); //创建一个字节数组,从缓存中拿取数据
  38. }
  39. //得到一个8位有符号整型的字节数组,大端字节序
  40. function getInt8Bytes(num) {
  41. return getUint8Array(1, function (view) { view.setInt8(0, num); })
  42. }
  43. //得到一个8位无符号整型的字节数组,大端字节序
  44. function getUint8Bytes(num) {
  45. return getUint8Array(1, function (view) { view.setUint8(0, num); })
  46. }
  47. //得到一个16位有符号整型的字节数组,大端字节序
  48. function getInt16Bytes(num) {
  49. return getUint8Array(2, function (view) { view.setInt16(0, num); })
  50. }
  51. //得到一个16位无符号整型的字节数组,大端字节序
  52. function getUint16Bytes(num) {
  53. return getUint8Array(2, function (view) { view.setUint16(0, num); })
  54. }
  55. //得到一个32位有符号整型的字节数组,大端字节序
  56. function getInt32Bytes(num) {
  57. return getUint8Array(4, function (view) { view.setInt32(0, num); })
  58. }
  59. //得到一个32位无符号整型的字节数组,大端字节序
  60. function getUint32Bytes(num) {
  61. return getUint8Array(4, function (view) { view.setUint32(0, num); })
  62. }
  63. //得到一个32位浮点型的字节数组,大端字节序
  64. function getFloat32Bytes(num) {
  65. return getUint8Array(4, function (view) { view.setFloat32(0, num); })
  66. }
  67. //得到一个64位浮点型的字节数组,大端字节序
  68. function getFloat64Bytes(num) {
  69. return getUint8Array(8, function (view) { view.setFloat64(0, num); })
  70. }