当前位置: 首页 > wzjs >正文

网站建设与管理课程自己搭建网站要钱吗

网站建设与管理课程,自己搭建网站要钱吗,百度如何快速收录,昆明seo排名外包【HarmonyOS Next】常见的字节转换 字节转换、位运算在实际开发中具有广泛的应用价值,特别是在处理字节级数据时发挥着重要作用。例如,在网络通信中用于大小端序转换,在数据解析时进行位提取操作。这些特性使得位运算在USB通信、蓝牙&#x…

【HarmonyOS Next】常见的字节转换

字节转换、位运算在实际开发中具有广泛的应用价值,特别是在处理字节级数据时发挥着重要作用。例如,在网络通信中用于大小端序转换,在数据解析时进行位提取操作。这些特性使得位运算在USB通信、蓝牙(Ble)数据传输、近场通信(NFC)以及TCP/IP协议栈等底层通信场景中成为不可或缺的技术手段。

  • 在java中表示数值的整型有byte、short、int、long,分别对应1字节、2字节、4字节、8字节。另外还有浮点型float、double。
  • 在ArkTs中表示数值的类型为number,表示整型和浮点型。

在Harmony ArkTs中我们似乎不再关注它的范围,也不再关注类似于java语言中的符号位。
在ArkTs中字节数组用Uint8Array表示,表示一个8位无符号整数的数组。每个元素的取值范围0到255(即1个字节),那我们应该怎么使用它?

位提取

 static getBit(value: number, index: number): number {return (value >> index) & 0x01;}

value是数值,index是索引,代表取的第几位,上诉代码通过右移和位操作提取一个数值中的某一位(0或1)。假设value=13,取它的第一位(index=0)的数值时,13的二进制是0000 1101,& 0000 0001,所以返回值为1

工具类-不同的字节范围转换成number

下面的工具类中提供了转换步骤,比如2字节、4字节与number的转换,同时提供了大小端的区分。

export class ByteUtils {static readonly TAG: string = 'ByteUtils';/*** 获取位* @param value* @param index* @returns*/static getBit(value: number, index: number): number {return (value >> index) & 0x01;}/*** Byte[] 与 int 互转* =============================================================================================*//*** 将int转为高字节在前,低字节在后的byte数组(大端)** @param n int* @return byte[]*/static intToByteBig(n: number): Uint8Array {let b = new Uint8Array(4);b[3] = (n & 0xff);b[2] = (n >> 8 & 0xff);b[1] = (n >> 16 & 0xff);b[0] = (n >> 24 & 0xff);return b;}/*** 将int转为低字节在前,高字节在后的byte数组(小端)** @param n int* @return byte[]*/static intToByteLittle(n: number): Uint8Array {let b = new Uint8Array(4);b[0] = (n & 0xff);b[1] = (n >> 8 & 0xff);b[2] = (n >> 16 & 0xff);b[3] = (n >> 24 & 0xff);return b;}/*** byte数组到int的转换(小端)** @param bytes* @return*/static bytes2IntLittle(bytes: Uint8Array): number {let int1 = bytes[0] & 0xff;let int2 = (bytes[1] & 0xff) << 8;let int3 = (bytes[2] & 0xff) << 16;let int4 = (bytes[3] & 0xff) << 24;return int1 | int2 | int3 | int4;}/*** byte数组到int的转换(大端)** @param bytes* @return*/static bytes2IntBig(bytes: Uint8Array): number {let int1 = bytes[3] & 0xff;let int2 = (bytes[2] & 0xff) << 8;let int3 = (bytes[1] & 0xff) << 16;let int4 = (bytes[0] & 0xff) << 24;return int1 | int2 | int3 | int4;}/*** Byte[] 与 short 互转* =============================================================================================*//*** 将short转为高字节在前,低字节在后的byte数组(大端)** @param n short* @return byte[]*/static shortToByteBig(n: number): Uint8Array {let b = new Uint8Array(2);b[1] = (n & 0xff);b[0] = (n >> 8 & 0xff);return b;}/*** 将short转为低字节在前,高字节在后的byte数组(小端)** @param n short* @return byte[]*/static shortToByteLittle(n: number): Uint8Array {let b = new Uint8Array(2);b[0] = (n & 0xff);b[1] = (n >> 8 & 0xff);return b;}/*** 读取小端byte数组为short** @param b* @return*/static byteToShortLittle(b: Uint8Array): number {return (((b[1] << 8) | b[0] & 0xff));}/*** 读取大端byte数组为short** @param b* @return*/static byteToShortBig(b: Uint8Array): number {return (((b[0] << 8) | b[1] & 0xff));}
}

工具类-16进制转换

16进制是一种数值的表示方式,通常表示字节数组,它在调试过程中更容易理解。

import { buffer } from "@kit.ArkTS";export class HexUtils {static readonly TAG: string = 'HexUtils';static numberToHex(num: number): string {return num.toString(16).toUpperCase().padStart(2, '0');}//十六进制转Uint8Arraystatic HexStrToUint8Array(data: string): Uint8Array {return new Uint8Array(buffer.from(data, 'hex').buffer);}// Uint8Array转十六进制static uint8ArrayToHexStr(data: Uint8Array): string {let hexString = '';let i: number;for (i = 0; i < data.length; i++) {let char = ('00' + data[i].toString(16)).slice(-2);hexString += char;}return hexString;}
}

文章转载自:

http://W7imsy8b.nrydm.cn
http://YC2KFAdG.nrydm.cn
http://DMimWiwV.nrydm.cn
http://j01tMrWW.nrydm.cn
http://eLI8hisz.nrydm.cn
http://QbowvAhV.nrydm.cn
http://iRryG0OB.nrydm.cn
http://UXWJEA8d.nrydm.cn
http://wHLqjS4Z.nrydm.cn
http://x4lxykFh.nrydm.cn
http://XY2TbrnB.nrydm.cn
http://15hfL1RM.nrydm.cn
http://DSVH9lwG.nrydm.cn
http://QYbwWEKg.nrydm.cn
http://OpXD2zwQ.nrydm.cn
http://bSEuJ568.nrydm.cn
http://qbm7QILb.nrydm.cn
http://G4WCNItS.nrydm.cn
http://pP5FxmGS.nrydm.cn
http://0SMZmtvi.nrydm.cn
http://NcPkn34e.nrydm.cn
http://PVMgQii5.nrydm.cn
http://BAv0vi66.nrydm.cn
http://Tim06F1o.nrydm.cn
http://79i89J5r.nrydm.cn
http://xZKzlPA5.nrydm.cn
http://mClxml7J.nrydm.cn
http://LxdHQR7s.nrydm.cn
http://zI54YUrL.nrydm.cn
http://YAQoMSrU.nrydm.cn
http://www.dtcms.com/wzjs/651022.html

相关文章:

  • 赣州做网站的公司有哪家好排名seo公司
  • 吉林网站建设设计乡镇社区教育中心网站建设
  • 网站建设柒金手指排名二一GTA5浏览器网站建设中
  • 用html做一号店网站怎么做起飞页自助建站平台的特点
  • 杭州网站建设制作联系电话网站建设一般分为几个步骤
  • 大淘客怎么做网站结构优化是什么意思
  • 做网站的公司应该税率多少大型网站空间费用
  • 东莞做网站 南城信科wordpress的优缺点
  • wordpress建站专家做短视频的软件
  • 做外贸的国际网站有哪些网络营销与市场营销的关系?
  • 广东购物网站建设报价甘肃省住房和城乡建设厅执业资格注册中心网站
  • 怎么接网站来做wordpress 自动tag
  • 网站开发辅助工具织梦做分类信息网站
  • 有没有个人做网站的湖南网站开发企业
  • 成都专门做网站的公司最新的电商平台
  • 域名和网站一样吗网站后台上传附件
  • 智能建站软件哪个好seo描述是写什么
  • 企业门户网站功能描述龙岩做网站公司
  • 企业网站关站快速提高排名
  • 静态网页建站网络公司网络推广
  • 图书拍卖网站开发过程的问题白山网站建设
  • 成都网站建设博客淘客推广效果
  • 手机网站例子河南省住建局官方网站
  • 国内新闻最新消息简短手机网站优化 工具
  • 济宁北湖建设局网站前端网站开发实例视频
  • 网站建设费科目属于无形资产么网站建站咨询
  • 叫别人做网站要多久网站开发与运营怎么样
  • 企业信息型网站有哪些电脑编程教学入门教程
  • 网站建设意味着什么春节网页设计主题
  • 上海哪里网站备案网站如何做淘宝联盟推广