javascript是有一定的长度限制的,当数组赋值的字符串过长的时候,就有可能会报错。
解决的办法有:
1. 把数组的赋值分成多个引用,使用拼接来完成;
2. 把超长的字符串分割,分成多个字符串后单独作为数组元素;
3. 将超长字符串写入文件,从文件中读取赋值给数组。
字符串的最大长度与js中能表达的【最大安全整数】有关系,这是为什么呢
utf-16相关:
符号位1 指数为11 位位尾数位52 (1+11+52=64)
那应该是2^52-1 才对,但小数点前保留一位规格化后始终是1.***这个不需要存,所以这样就成了2^53-1
我理解是:只要转码后的二进制总长度不超出2^53-1就行,但是不一样的编码方式转码后的二进制长度不相同,所以字符串最大字符长度受字符串编码方式影响
负数求二进制
例:-14
原码->反码->补码
原码0000 1110 (14= 2^3 + 2^2 + 2^1)
反码 1111 0001(按位取反)
补码 1111 0010(反码加一)
小数二进制
例:1.5的二进制1.1,二进制1.1反推回去:1 * 2^0 + 1 * 2^(-1)=1.5