计算机码表容量怎么计算出来的?比如万国码是两个字节表示一个字符,为什么它只能收录65535个?
因为是万国码是两个字节,1个Byte=8bit,1Mb=1024B,1GB=1024MB,计算机32位的,理论上内存是可以扩充到4GB=2的32次方,而65535是:二进制的0000 0000 0000 0000,16个0到十六个1 :1111 1111 1111 1111,计算机是从0开始的,所以最大到65535,共65536个数
2个字节就是16位,2的16次方等于65535。
import java.io.FileNotFoundException;
import java.io.PrintStream;
import java.io.PrintWriter;
public class Print {
public static void main(String[] args) {
String path = "d:\chars.txt";
int counter =0;
PrintWriter pw = null;
PrintStream old = System.out;
try {
pw = new PrintWriter(path);
for(char ch =0;ch <=60000;ch++)
{
pw.write(ch);
System.out.print(ch+" ");
counter++;
}
if(counter%30==0)
{
System.out.println();
}
System.setOut(old);
System.out.println("已将[0,60000]围的所有字符一一打印到 " + path + " 文件中了。");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(pw!=null)
pw.close();
}
}
}
//这个代码可以显示出万国码的几乎所有码,你运行完,去看看就明白了
因为是万国码是两个字节,1个Byte=8bit,1Mb=1024B,1GB=1024MB,计算机32位的,理论上内存是可以扩充到4GB=2的32次方
因为是万国码是两个字节,1个Byte=8bit,1Mb=1024B,1GB=1024MB,计算机32位的,理论上内存是可以扩充到4GB=2的32次方,而65535是:二进制的0000 0000 0000 0000,16个0到十六个1 :1111 1111 1111 1111,计算机是从0开始的,所以最大到65535,共65536个数