java基础

目录

计算机三大硬件:CPU、内存、磁盘

内存

磁盘

存储数据(电生磁)

读取数据(磁生电)

java代码

数据类型

强数据类型语言

弱数据类型语言

基本数据类型:整型、布尔型、浮点型、字符型

整型

以byte为例,计算机对整形的存储方式

数据的源码

运算

反码

运算

补码

运算

除余法

另一种方法

byte例题

浮点型


计算机三大硬件:CPU、内存、磁盘

由于磁盘读取数据(3-5ms)与CPU计算数据(0.2ns)差距过大,所以中间加了内存。

由内存直接给CPU读取数据(20ns)可以提高CPU利用率。

0.2ns/20ns大约1%

内存

内存采用电容器的方案。

电容实际相当于一个电池。

通过每个电容的充放电原理存储数据。

磁盘

磁盘表面并不光滑,由一圈圈磁道组成。

磁道由一颗颗磁颗粒组成。

磁盘存储的原理是电生磁/磁生电。

磁盘中的数据既是以二进制形式存储的,又是通过文件和文件系统的结构来组织和管理的。

一个磁颗粒存储1bit数据。

存储数据(电生磁)

通过使磁头带电,控制电流方向来存储数据。

假设0为S极,1为N极,要存储数据01010110。

图中磁头带了S极,异性相斥,使下方电磁粒带了N极,在磁颗粒上存了数据1。

然后继续滑动磁头,完成数据的存储。

读取数据(磁生电)

当磁头划过磁颗粒时,磁颗粒的磁场使磁头产生电流,根据电流的方向判断数据内容。

java代码

xx.java文件是源文件,计算机看不懂。

javac将文件编译成xx.class文件。

xx.class文件通过java命令编译进内存当中。

数据类型

数据在内存中的存储形式

强数据类型语言

存储数据时必须清楚数据类型

C  C++  java

int a=10;

float b=10.00;

弱数据类型语言

js python

var a=10;

var b=10.00;

基本数据类型:整型、布尔型、浮点型、字符型

整型

byte  short  int  long

以byte为例,计算机对整形的存储方式

byte a=10;

byte b=-10;

byte是基本数据类型---数据类型决定数据在内存当中如何存储

byte大小是8bit(1字节)1bit符号位 7bit数值位

10:00001010(源码)

-10:10001010(源码)

数据的源码

数据直接转化成对应的二进制形式,然后根据数据类型进行补充,正数最高位为0,负数最高位为1

int a=-10;

1000 0000 0000 0000 0000 0000 0000 1010(源码)

short b=-12;

1000 0000 0000 1100(源码)

运算

所以计算机存储数据肯定不是存储源码,源码的相反数相加不为0

反码

正数的反码=源码;

负数的反码=源码的符号位不变,其余位按位取反

byte a=10;

byte b=-10;

a:反码:0000 1010(反码)

b:反码:1111 0101(反码)

运算

所有计算机中的数据肯定不是反码,反码存在+-0的问题

补码

正数补码=反码=源码

负数补码=反码的基础上末尾+1

byte a=10;

byte b=-10;

a:补码:0000 1010(反码)

b:补码:1111 0110(反码)

运算

所以计算机当中存储数值类型的数据是补码的形式

除余法

步骤:

除以2:将十进制数除以2

取余数:记录下除法的余数(只可能是0或1)

商继续除2:将得到的商再次除以2,并重复步骤2

重复直到商为0:继续上述过程,直到商为0为止

余数反转:将所有得到的余数按相反的顺序排列(即最先得到的余数放在最后,最后得到的余数放在最前)

另一种方法

依次罗列出2^0开始的各个数值

寻找当前数据在那个区间,在区间左侧标1,用原数据减去标一的数值,取差继续步骤

直到数据落在罗列的数值上,此时相差为0

从右侧往左侧读数

byte例题

byte a=127;

byte b=1;

byte c=(byte)(a+b);

System.out.println(c);

byte最大数:0111 1111(127)

最小数:1000 0000(-128)

a:0111 1111

b:0000 0001

直接进行a+b=1000 0000(-128)

浮点型

float  double

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值