电脑只用二进制,根本原因就是电路板、芯片硬件本身决定的,没有别的原因。
一、先搞懂:电路的本质是什么理论?
电路板、芯片里所有东西,本质都是电信号。电信号靠电压高低来区分信息。
物理学上一个铁律:任何电路,都存在干扰。温度、线路长短、电阻、电流泄露、外界电磁,全部都会让电压乱飘。
所以电路不能精细区分电压大小。只能区分两大类:
- 电压足够高 → 有效信号
- 电压足够低 → 无信号
没有中间稳定值。中间电压全都是干扰杂波,没用、不稳定、无法用来存数据。
这就是硬件底层物理理论:电信号天然只有二元属性,没有多元属性。
二、对应到数学上的理论
人类要用电信号代表数字、代表信息。数学上,数制分几种:
- 十进制:0~9,1 个位置要有 10 种不同状态
- 三进制:0、1、2,1 个位置 3 种状态
- 二进制:0、1,1 个位置只有 2 种状态
结合上面的物理理论:电路一个位置只能稳定分出 2 种状态→ 刚好完美匹配二进制不多不少,严丝合缝。
十进制 二进制
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
10 1010
位:
进制最小单位,所有进制都有这个概念
字节
二进制的基本单位
1byte=8bit
1b=8b
255是1个字节因为是8个1二进制
基本数据类型转换
前提
兼容类型
八种基本类型,除了布尔类型其他七种类型都是兼容的
隐式转换(自动类型转换)
目标类型范围>源类型
目标类型(接受值)=源类型
举例:
byte是小盒子,int是大盒子小盒子里的东西,放进大盒子,完全装得下,不会丢东西,所以 Java 允许直接赋值,不用额外操作。
反过来:大盒子往小盒子装会溢出来,就不能直接赋值。
反了九不行,马上就报错
显示转换(强制类型转换)
目标类型范围>源类型
目标类型(接受值)=源类型
算术运算自动提示规则
byte,short ,char--->int---->long---->float----->double
byte,short ,char这三种类型参与运算,结果int
有一个高级类型参与运算,结果自动提升为这种类型
学习输入
输出
System.out.println()
System.out.print()
输入
导入包
import java.util.Scanner;
创建Scanner对象
Scanner sc=new Scnaner(System.in);
int age=sc.nextInt()
double score=sc.nextDouble();