GVKun编程网logo

js byte转KB,MB,GB,TB代码(js byte转string)

13

关于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)

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带单位符号的单位转换

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, 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  太字节

1PB = 1024TB     拍字节
1EB = 1024PB
1ZB = 1024EB
1YB = 1024ZB
1BB = 1024YB
1NB = 1024BB
1DB = 1024NB
1CB = 1024DB
1XB = 1024CB

网络带宽的单位是: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

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()引发的不一致问题

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()引发的不一致问题的相关信息,请在本站查询。

本文标签: