关于jsbyte转KB,MB,GB,TB代码和jsbyte转string的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于bkbmbgbtb带单位符号的单位转换、bit,byte,KB,GB
关于js byte转KB,MB,GB,TB代码和js byte转string的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于b kb mb gb tb带单位符号的单位转换、bit, byte, KB, GB, TB, PB, EB, ZB, YB, BB, NB, DB, CB, XB、Bit、Byte、kb、KB、MB、KiB、MiB、byte[]->new String(byte[]) -> getByte()引发的不一致问题等相关知识的信息别忘了在本站进行查找喔。
本文目录一览:- js byte转KB,MB,GB,TB代码(js byte转string)
- b kb mb gb tb带单位符号的单位转换
- bit, byte, KB, GB, TB, PB, EB, ZB, YB, BB, NB, DB, CB, XB
- Bit、Byte、kb、KB、MB、KiB、MiB
- byte[]->new String(byte[]) -> getByte()引发的不一致问题
js byte转KB,MB,GB,TB代码(js byte转string)
//byte 转bkmgt
byteconvert:function (bytes){
var i = 0;
var KBRule=1024;
var j = "BKMGT";
while (bytes>KBRule) {
bytes=bytes/KBRule;
i++;
}
return bytes.toFixed(1) + j.charAt(i);
}
b kb mb gb tb带单位符号的单位转换
/**
转换容量单位换算方法zk
**/
function unitConver(limit){
var limit=limit.toLowerCase();//转换为小写
if(limit.indexOf(''b'')==-1){ //如果无单位,加单位递归转换
limit=limit+"kb";
}
var reCat=/[0-9]*[a-z]b/;
if(!reCat.test(limit)&&limit.indexOf(''b'')!=-1){ //如果单位是b,转换为kb加单位递归
limit=limit.substring(0,limit.indexOf(''b'')); //去除单位,转换为数字格式
limit=Math.ceil((limit/1024))+''kb''; //换算舍入加单位
}
if(limit.indexOf(''kb'')!=-1&&limit.length>5){ //如果为kb,转换为mb加单位递归
limit=limit.substring(0,limit.indexOf(''kb'')); //去除单位,转换为数字格式
limit=Math.ceil((limit/1024))+''mb''; //换算舍入加单位
}
if(limit.indexOf(''mb'')!=-1&&limit.length>5){ //如果为mb,转换为gb加单位递归
limit=limit.substring(0,limit.indexOf(''mb''));//去除单位,转换为数字格式
limit=Math.ceil((limit/1024))+"gb"; //换算舍入加单位
}
if(limit.indexOf(''gb'')!=-1&&limit.length>5){ //如果为gb,转换为tb加单位递归
limit=limit.substring(0,limit.indexOf(''gb''));//去除单位,转换为数字格式
limit=Math.ceil((limit/1024))+"tb"; //换算舍入加单位
return limit; //tb为最大单位转换后跳出
}
return limit;
}
方法2:
function unitConver1(limit){
var index=0;
var moveidex=0;
var limit=limit.toLowerCase();//转换为小写
if(limit.indexOf(''b'')==-1){ //如果无单位,加单位递归转换
limit=limit+"kb";
//unitConver(limit);
}
var reCat=/[0-9]*[a-z]b/;
if(!reCat.test(limit)&&limit.indexOf(''b'')!=-1&&limit.length>4){ //如果单位是b,转换为kb加单位递归
limit=limit.substring(0,limit.indexOf(''b'')); //去除单位,转换为数字格式
limit=Math.ceil((limit/1024))+''kb''; //换算舍入加单位
//unitConver(limit);
}
var array=new Array(''kb'',''mb'',''gb'',''tb'',''pt'');
for(var i=0;i<array.length;i++){ //记录所在的位置
if(limit.indexOf(array[i])!=-1){
index=i;
break;
}
}
var limit=limit.substring(0,(limit.length-2)); //得到纯数字
for(var i=0;i<array.length-index;i++){
limit=Math.ceil((limit/1024)); //每次缩小一个单位
if(limit<1024){ //不行进行下一次的换算单位
moveidex=i+1; //记录做了几次除法运算/至少执行一次
break;
}
}
limit=limit+array[index+moveidex]; //根据原位置和移动后的位置加入单位
return limit;
}
bit, byte, KB, GB, TB, PB, EB, ZB, YB, BB, NB, DB, CB, XB
这些基本的知识,虽然知道,但不容易记准。写在这里,可以随时参考。
bit = 0或1,翻译为位或比特,是一个二进制数,计算机运算的最小单位,所有的一切最终都会转化为0和1来计算
byte = 8 bit,翻译为字节,文件存储的最小单位
1KB = 1024B = 2^10B 千字节
1MB = 1024KB = 2^20B 兆字节
1GB = 1024MB = 2^30B 吉字节
1TB = 1024GB = 2^40B 太字节
网络带宽的单位是:bps,b是bit(比特),bit per second, 如1Mbps
网络下载速度的单位是:Bps,byte (字节), byte per second,如100Kb/s,1 Bps = 8bps
中文单位
|
中文简称
|
英文单位
|
英文简称
|
进率(Byte=1)
|
---|---|---|---|---|
位
|
比特
|
bit
|
b
|
0.125
|
字节
|
字节
|
Byte
|
B
|
1
|
千字节
|
千字节
|
KiloByte
|
KB
|
2^10
|
兆字节
|
兆
|
MegaByte
|
MB
|
2^20
|
吉字节
|
十亿/千兆
|
GigaByte
|
GB
|
2^30
|
太字节
|
万亿
|
TeraByte
|
TB
|
2^40
|
拍字节
|
千万亿
|
PetaByte
|
PB
|
2^50
|
艾字节
|
百亿亿
|
ExaByte
|
EB
|
2^60
|
泽字节
|
十万亿亿
|
ZettaByte
|
ZB
|
2^70
|
尧字节
|
一亿亿亿
|
YottaByte
|
YB
|
2^80
|
珀字节
|
千亿亿亿
|
BrontoByte
|
BB
|
2^90
|
诺字节 | 一百万亿亿亿 |
NonaByte
|
NB
|
2^100 B
|
刀字节 | 十亿亿亿亿 |
DoggaByte
|
DB
|
2^110 B |
馈字节 | 万亿亿亿亿 |
Corydonbyte
|
CB
|
2^120 B |
XB |
Bit、Byte、kb、KB、MB、KiB、MiB
原文地址:https://www.cnblogs.com/pipci/p/8134101.html
1、Byte、bit
bit表示:位,是计算机中最小的数据单位。每一位的状态只能是0或1;
Byte表示:字节,8个二进制位构成1个字节,即1 Byte = 8 bit 。1个英文字母或者数字占用1个字节的空间,1个汉字占据2个字节的空间。
2、Bps、bps
虽然只是大小写不同,两者是完全不同的,前者是Byte per second,即字节/秒;
后者是bit per second,即位/秒。 如家用的2M宽带,也就是2M bps,换成Bps也就是(2M/8 )Bps = 256K Bps,所以我们用2M宽带下载时的最大下载速度就是256KB左右。 我们平常所说的百兆、千兆网卡,其单位就是bps,而非Bps。
3、GT/s、GB/s
常用来描述计算机内部总线的传输速度
GTs:giga transfers per second,可以通俗的理解为“G次秒”,表示传输速度。如Core i7 QPI总线传输速度可以达到4.8GTs,HT 3.0总线可以达到5.2GTs,也就是 说QPI总线每秒可以传输4.8G次,HT 3.0总线则是每秒5.2G次。
4、GB/s
即G Bytes,如QPI总线的带宽是25.6GBs,即每秒能传输25.6G字节。 两者间的换算:比如1333MHz的FSB,每秒传输1333M(1.333G)次,每次传输64 bit数据,也就是8 Byte,所以它的传输带宽就是1.333*8=10.7GB/S。
5、Mbps
是国际单位制SI制定的十进制标准单位制,这个M是1000K,而Mibps是国际电工委员会IEC制定的二进制标准,这个M是1024K 。1Mbps=125000Bytes ,1Mibps=131072Bytes.所有2Mbps是250kB/s。注意这里的k是小写的。这里要谈到另一个原因,小写k是代表1000的,例如1kb。而大写K经常是Ki的不规范缩写,比如KB=1024Byte。
6、KB、KiB等:
1KB = 1,000 Byte
1MB = 1,000 KB
1GB = 1,000,000 KB
1TB = 1,000,000,000 KB
1KiB = 1,024Byte
1MiB = 1,024KiB
1GiB = 1,024MiB = 1,048,576 KiB
1TiB = 1,024GiB = 1,073,741,824 KiB
byte[]->new String(byte[]) -> getByte()引发的不一致问题
今天接短信接口,短信接口提供了sdk,我们可以直接用sdk发送请求然后发送对应短信。
但是想使用我们平台自定义的httpUtil实现。
然而忙了1天半,才解决这个问题,还是我同事帮忙找出问题并解决的。
步骤:
1、请求信息转json
2、json走AES加密得到byte[]
3、将byte[]放入post请求发送,并接受响应。
sdk直接成功,它是自己基于HttpURLConnection封装的一套HttpUtil,直接接受了byte[]作为请求参数,使用post发送响应成功
我们的HttpUtil是基于HttpClient封装而来,post方法只能接受String或Map参数,于是将加密后的byte[] 进行new String()操作后传入,跟进信息,底层将该String采用getByte("UTF-8")进行转换给Request然后请求。一直返回解密失败。
反复调试,将contentType指定为text/plain,编码统一都是UTF-8。但依旧一直该错误。对比两种方式加密后byte[],没有区别。最后发现使用new String(byte[])之后getByte()得到的byte[]容量变大,颠覆我的认知了,byte[]数组经过指定编码new String()然后经过指定编码getByte[]得到的居然不一致。后面定位原因是我系统默认的编码和指定的编码都是UTF-8,但是AES加密产生的byte[]的编码是ISO-8859-1,导致得到的byte[]不是原来的byte[],所以解密失败。
也就是说我前面解码byte[]得到字符串的时候使用了错误编码,导致后面getByte指定错误编码得到的字符串解密后不是原来的样子。
我们今天的关于js byte转KB,MB,GB,TB代码和js byte转string的分享已经告一段落,感谢您的关注,如果您想了解更多关于b kb mb gb tb带单位符号的单位转换、bit, byte, KB, GB, TB, PB, EB, ZB, YB, BB, NB, DB, CB, XB、Bit、Byte、kb、KB、MB、KiB、MiB、byte[]->new String(byte[]) -> getByte()引发的不一致问题的相关信息,请在本站查询。
本文标签: