js byte转数字,数字转byte
最编程
2024-01-15 18:45:37
...
var NumberUtil={ //byte数组转换为int整数 bytesToInt2:function(bytes, off) { var b3 = bytes[off] & 0xFF; var b2 = bytes[off + 1] & 0xFF; var b1 = bytes[off + 2] & 0xFF; var b0 = bytes[off + 3] & 0xFF; return (b0 << 24) | (b1 << 16) | (b2 << 8) | b3; }, //byte数组转换为无符号short整数 byte2ToUnsignedShort:function(bytes, off) { var high = bytes[off + 1]; var low = bytes[off]; return (high << 8 & 0xFF00) | (low & 0xFF); }, //byte数组转字符串 byteToString:function(arr) { if (typeof arr === 'string') { return arr; } var str = '', _arr = arr; for (var i = 0; i < _arr.length; i++) { var one = _arr[i].toString(2), v = one.match(/^1+?(?=0)/); if (v && one.length == 8) { var bytesLength = v[0].length; var store = _arr[i].toString(2).slice(7 - bytesLength); for (var st = 1; st < bytesLength; st++) { store += _arr[st + i].toString(2).slice(2); } str += String.fromCharCode(parseInt(store, 2)); i += bytesLength - 1; } else { str += String.fromCharCode(_arr[i]); } } return str; }, //int整数转换为4字节的byte数组 intToByte4:function(i) { var targets =[]; targets[0] = (i & 0xFF); targets[1] = (i >> 8 & 0xFF); targets[2] = (i >> 16 & 0xFF); targets[3] = (i >> 24 & 0xFF); return targets; }, //无符号short转换为2字节的byte数组 unsignedShortToByte2:function(s){ var targets = []; targets[1] = (s >> 8 & 0xFF); targets[0] = (s & 0xFF); return targets; }, //字符串转byte数组 stringToByte:function(str) { var bytes = new Array(); var len, c; len = str.length; for(var i = 0; i < len; i++) { c = str.charCodeAt(i); if(c >= 0x010000 && c <= 0x10FFFF) { bytes.push(((c >> 18) & 0x07) | 0xF0); bytes.push(((c >> 12) & 0x3F) | 0x80); bytes.push(((c >> 6) & 0x3F) | 0x80); bytes.push((c & 0x3F) | 0x80); } else if(c >= 0x000800 && c <= 0x00FFFF) { bytes.push(((c >> 12) & 0x0F) | 0xE0); bytes.push(((c >> 6) & 0x3F) | 0x80); bytes.push((c & 0x3F) | 0x80); } else if(c >= 0x000080 && c <= 0x0007FF) { bytes.push(((c >> 6) & 0x1F) | 0xC0); bytes.push((c & 0x3F) | 0x80); } else { bytes.push(c & 0xFF); } } return bytes; }, //有符int转无符int int2uint:function(i) { if (i >= 0) return i; else 4294967296 + i; }, //无符int转有符int uint2int:function(i) { if (i <= 2147483647) return i; else return i - 4294967296 }, //有符char转无符char char2uchar:function(i) { if (i >= 0) return i; else 65535 + i; }, //无符char转有符char uchar2char:function(i) { if (i <= 32767) return i; else return i - 65535 }, //有符byte转无符byte bytes2ubytes:function(i) { if (i >= 0) return i; else 255 + i; }, //无符byte转有符byte ubytes2bytes:function(i) { if (i <= 127) return i; else return i - 255 } }
推荐阅读
-
位、字节、WORD、DWORD 的区别和联系 - Unicode 和 ANSI 的区别就像输入法中 "全宽 "和 "半宽 "的区别一样。 由于不同的 ANSI 编码有不同的标准(不同的字符集),对于给定的多字节字符串,我们必须知道它使用的是哪种字符集,才能知道它包含哪些 "字符"。对于 UNICODE 字符串来说,无论环境如何,它所代表的 "字符 "内容始终是相同的。Unicode 有一个统一的标准,定义了世界上大多数字符的编码,因此拉丁文、数字、简体中文、繁体中文和日文都可以存储在一个编码中。统一码是一个统一的标准,定义了世界上大多数字符的编码。 比特(Bit)和字节(Byte)的区别:例如USB2.0 标准接口的传输速率为 480Mbps,有一些人误认为是每秒 480 兆比特,同样网络带宽为 2MB,就容易误认为是每秒 2 兆比特。其实,480Mbps 应该是 480 兆比特/秒或 480 兆字节/秒,它等于 "60 兆字节/秒";同样,2MB,应该是 256 兆字节/秒。 Bit 和 Byte 译为 "比特",都是数据计量单位,比特="位 "或 "比特"。 Byte = 字节,即 1byte = 8bits,两者的换算关系为 1:8。 Mbps = mega bits per second(兆位/秒)是速率单位,因此 2M 带宽应为 2 兆位/秒,即 2MBps。MB = 兆字节(Megabytes,兆字节)是单位量,1MB/S(兆字节/秒)= 8MBPS(兆字节/秒)。 通常所说的硬盘容量是指 40GB、80GB、100GB,其中的 B 是指 Byte 也称为 "字节"。 1 KB=1024 字节 1 MB=1024 KB=1024*1024 字节 1 GB=1024 MB=1024*1024*1024 字节 例如,以前所谓的 56KB MODEM 转换过来的 56KBps 除以 8 就是 7Kbyte,所以真正从网上下载文件存在硬盘上的速度也是每秒 7Kbyte;也就是说,用 B 表示传输速度一般指 Bit;用 B 表示容量一般指 Byte。比特、字节、WORD、DWORD 的本质。
-
怎么转 "是建筑企业数字化转型的关键和方向
-
C# 中 Byte.Parse 的用法,如果需要解析包含数字以外的字符,应该如何使用?
-
数码转古罗马数字符号
-
将MD5转换为数字的方法
-
简单聊聊Unity中的阿拉伯数字转中文汉字
-
js byte转数字,数字转byte
-
javascript 数字转中文大写
-
用js将数字转中文
-
js--如何数字转中文