HarmonyOS 想将byte数组中的每个元素做位移运算后再使用Base64转码,做了位移运算后得到元素值已经超过8位,但是API只提供了Uint8Array的转码,没有提供Uint16Array,Uint32Array,这种问题怎么处理?

问题1:位移运算所得结果超出初始定义的数组。

function test(){
  let arry = new Uint8Array([117,143,122,132])
  let newDat8 = new Uint8Array(4)
  let newData16 = new Uint16Array(4)
  let newData32 = new Uint32Array(4)
  for (let index = 0; index < arry.length; index++) {
    let x = (arry[index]<<8)&0xff00
    console.log('arry----'+x)//分别输出  29952,36608,31232,33792
    newDat8.set([x],index)
    newData16.set([x],index)
    newData32.set([x],index)
  }
  console.log('newDat8----'+newDat8.toString())//输出:newDat8----0,0,0,0
  console.log('newData16----'+newData16.toString())//输出:newData16----29952,36608,31232,33792
  console.log('newData32----'+newData32.toString())//输出:newData32----29952,36608,31232,33792
}

问题2.util.Base仅支持Uint8Array,那么剩下的Uint16Array,Uint32Array怎么转换Base64,即使用Array[],那么该怎么对Array[]进行Base64转解码?

let base64 = new util.Base64Helper()
base64.encodeSync(newDat8)
base64.encodeSync(newData16)//报错,该类中所有方法encode、decode方法均只支持Uint8Array
base64.encodeSync(newData32)
//报错,该类中所有方法encode、decode方法均只支持Uint8Array
HarmonyOS
2024-12-27 14:53:54
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

示例代码:uint32转ToBase64

function uint32ArrayToBase64(uint32Array: Uint32Array): Uint8Array {
  // 创建一个新的ArrayBuffer,并将Uint32Array的数据复制到其中
  let buffer = uint32Array.buffer.slice(uint32Array.byteOffset, uint32Array.byteOffset + uint32Array.byteLength);
  // 创建一个新的视图来将ArrayBuffer转换为Uint8Array
  let uint8Array = new Uint8Array(buffer);
  // 使用btoa将Uint8Array转换为Base64编码的字符串
  let base64 = new util.Base64Helper();
  return base64.encodeSync(uint8Array)
}
// 示例使用29952,36608,31232,33792
let bs = uint32ArrayToBase64(new Uint32Array([29952, 36608, 31232, 33792]))
console.log(bs.toString())
分享
微博
QQ
微信
回复
2024-12-27 16:46:27
相关问题
HarmonyOS Uint8Array16进制
159浏览 • 2回复 待解决
HarmonyOS stringUint8Array
247浏览 • 2回复 待解决
ArrayBuffer怎么Uint8Array
721浏览 • 1回复 待解决
HarmonyOS List<number>怎么Uint8Array
138浏览 • 1回复 待解决
HarmonyOS Uint8Array怎么正确ArrayBuffer
1686浏览 • 1回复 待解决
HarmonyOS Uint8Array
219浏览 • 1回复 待解决
HarmonyOS 录音发送Uint8Array
151浏览 • 1回复 待解决
如何将Uint8ArrayArrayBuffer?
627浏览 • 1回复 待解决
HarmonyOS uint8Array字符串
232浏览 • 1回复 待解决
HarmonyOS Uint8Array转成string出现乱码
193浏览 • 2回复 待解决
Uint8Array是@Sendable类吗?
384浏览 • 1回复 待解决
Uint8Array如何转成ArrayBuffer
1718浏览 • 1回复 待解决
HarmonyOS Uint8Array格式字符串方法
1004浏览 • 1回复 待解决
HarmonyOS string怎么Uint8Array互转?
653浏览 • 1回复 待解决
HarmonyOS ArrayBuffer如何转成Uint8Array
168浏览 • 1回复 待解决
Uint8Array 如何直接转为String or Json
2906浏览 • 1回复 待解决
如何将Uint8Array字符串?
744浏览 • 1回复 待解决
HarmonyOS 如何将Uint8Array转成ArrayBuffer
23浏览 • 1回复 待解决