之前我们学会了变量并进行了相对练习。
这里做一个计算机中的数据存储规则的拓展。
实际上,计算机中只有这三种数据:文本
、图片
和声音
。
- 而我们知道在计算机中,任意数据都是以二进制的形式来存储的。
- 什么是二进制?
- 逢二进一
- 借一当二
常见的进制
二进制:由0,1
组成,代码中以0b
开头
十进制:由0~9
组成,前面不加任何前缀
八进制:由0~7
组成,代码中以0
开头
十六进制由0 ~ 9
和a ~ f
组成,代码中以0x
开头
- 代码示例
public class HelloWorld {
public static void main(String[] args) {
System.out.println(17);//十进制
System.out.println(017);//八进制
System.out.println(0b123);//语法错误
System.out.println(0x123);//十六进制
}
}
- 计算机为什么使用二进制存储数据?
- 二十世纪计算机所用的打孔纸带
- 打孔是
0
,没打孔是1
。 - 大于
3.3v
为1
,小于3.3v
为0
。 - 这样只要用两种状态就可以表示
二进制
了,以前是有孔
和没孔
,现在是高压
和低压
。
进制之间的转换
- 任意进制转十进制
- 公式:
系数*基数的权次幂 相加
- 系数:就是每一位上的数
- 基数:当前进制数
- 权:从右往左,依次为
0 1 2 3 4 5 ...
8421
快速转换法:
- 每一位
二进制值
的1
都是代表一个固定数值。- 把每一位的
1
代表的十进制数
加起来得到的结果就是它所代表的十进制数
。
- 十进制转其他进制
除基取余法
不断地除以基数
(几进制,基数就是几)得到余数
,直到商为 0
,再将余数倒着拼起来
即可。
任意进制转十进制小结
公式:系数 * 基数的权次幂 相加
- 系数:就是每一位上的数
- 基数:当前进制数
- 权:从右往左,依次为0 1 2 3 4 5…
十进制转任意进制小结
除基取余法
不断地除以基数
(几进制,基数就是几)得到余数,直到商为0
,再将余数倒着拼起来
即可。
同时,我们要了解ASCII
码表
以及汉字
的存储规则
GB 2312
GB2312
编码:1981年5月1日发布的简体中文汉字编码国家标准。收录7445个图形字符,其中包含6763个汉字。BIG5
编码:台湾地区繁体中文标准字符集,共收录13053个中文字,1984年实施。GBK
编码:2000年3月17日发布,收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。Unicode
编码(万国码):国际标准字符集,它将世界各种语言的每一个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。
图片数据
图片数据我们只要了解分辨率、像素、三原色(红绿蓝)
分辨率
图片数据 - 黑白图
图片数据 - 灰度图
用0~255表示灰度数据
- 光学三原色:红、绿、蓝。
十进制表示
十六进制表示