一、数字
1、数字存储原理与Java的数字存储原理
数字表示常用进制:在冯诺依曼计算机中,数据都是采用二进制进行表示储存的,就是只有0和1两个元素进行组合构成。
在计算机中最高位为符号位,0表示正数,1表示负数。
例如:在Java中规定int是占用4个字节,每个字节表示8位,因此int占用了32位,而据上面的描述可知,最高位为符号位(整数或复数),所以int的数值位占用了31位,所以int的数值范围是 : -2的31次方 ~ 2的31次方-1
相对应的,short占用2个字节,long占用8个字节。
2、数字的计算与表示
在计算机中数据是使用其补码表示的,但正数补码是其本身,负数的补码是负数的源码取反加一得到的补码。
我们在日常生活中常用的是十进制进行表示计算的,就是由0-9十个元素进行组合构成,逢十进一的思想进行表示,通常在数值后面加上后缀D表示。
参考:谈谈Java中整数类型(short int long)的存储方式
二、字符串
数字在计算机中储存的是补码,而字符是在计算机中储存的是字符对应的编码(不要和数字的补码搞混)。
在计算机中,对非数值的字符进行处理时,要对字符进行数字化,即用二进制编码来表示字符。其中西文字符最常用到的编码方案有ASCII编码和EBCDIC编码。对于汉字,我国也制定的相应的编码方案,比如 GBK,GB2312等。
比如字符a的ASCII码十进制值为97,在计算机中用二进制表示就是 01100001。
参考:计算机如何储存数字和字符