纯小白的JAVA随堂笔记(变量,变量类型,进制相关)

JAVA笔记-我的课堂第二天

1.常量:就是程序运行中,其值不发生变化的量
常量:分为字面值和自定义常量(后面讲)
字面值常量
整数常量:
小数常量:
布尔常量:只有两个值:true(真) false(假)
字符常量:使用单引号引起来的单个字符,如’a’
字符串常量:以双引号引起来的单个或多个字符。如"A",“笔记”
mull 空常量

2.在代码中输出不同类型的字面值常量

纯小白的JAVA随堂笔记(变量,变量类型,进制相关)_第1张图片

这里用到的是EidtPlus,我们输入刚才写到的内容和规则,(“//+文本 为对代码的解释,不影响程序的整体完整性和正确性”),输入完成之后,保存到合适的路径中,关闭。

纯小白的JAVA随堂笔记(变量,变量类型,进制相关)_第2张图片

这时我们打开运行(win+R),输入CMD,打开如上图,下面代码我将省略C:\Users\LHC>.然后我们输入

cd desktop
java NoName2.java //NoName2是我的文件名称,这里写的是你的文件名称
java ConstantDeno

这时即可显示成功我们想要的内容。图中的中间有两个命令是我写错了,没有对应 class 后的类名,导致没办法生成

进制转换

java针对整数常量提供了4中进制

进制,就是一种进位制,就像我们小学学习的10倍乘法一样,逢10进1,进制就是逢X进1.

二进制:根据电子元器件的状态来的,开和关的状态,开以1表示,关以0表示,一个开关位有两种状态。图文,影响都是数据,那么规定,把8个开关位,规定为一个字节。所以这8个开关位有256种可能(2的8次方)

八进制:把二进制数据每三位分为一组,,从后往前补,(如二进制数据有01100001,八进制为001,100,001)不够的前面补0,然后把每一组数据转换成十进制(怎么转换,我是小白,我的老师后面会讲。。。。),把得到的数据拼接起来形成的数据就是八进制数据。

十六进制:把二进制数据分为4组,不够的前面补0(补齐方式同上),然后把数据换算成十进制,然后拼接起来,就形成了十六进制数据

特点:进制越大,数据的表现形式越短

不同进制的数据组成

二进制:由0和1组成

八进制:由1到7

十进制:0到9

十六进制:0到9,a到f

为了区分不同进制的数据,我们通过给数据加前缀分别如下:

二进制:0b100

八进制:0100

十进制:100

十六进制:0x100 别问我为什么,问就是自古以来。。。。。。

实操

按照上面的路数着手前期的操作。

纯小白的JAVA随堂笔记(变量,变量类型,进制相关)_第3张图片

纯小白的JAVA随堂笔记(变量,变量类型,进制相关)_第4张图片

这里输出的结果,全部换算了,至于怎么换算,且看下面(啪~)

怎么进制转换

任意进制到十进制的转换:

列:十到十:12345------------12345

方法:10000+2000+300+40+5=1x104+2x103+3x10^2+4x10+4=12345

那么二进制0b100转十进制:

我没听老师讲的时候,我想的是:

1x2^2+0x2+0=4.我想对了

八进制:0100=1x8^2+0x8=64

十六进制:0x100=1x16^2+0x16=256

我们发现:任意进制转的时候,我们X的时候,先看转的进制,是几进制就乘以几的平方。

十进制到任意进制

以下开头数字都为10进制数字

123转二进制:123÷2=61.。。。。。。1

​ 61÷2=30.。。。。。。1

​ 30÷2=15.。。。。。。0

​ 15÷2=7.。。。。。。1

​ 7÷2=3.。。。。。。1

​ 3÷2=1.。。。。。。1

​ 1÷2=0(这里不需要小数,就用到我们小学学的余数法就行)。。。。。1

所以转换为1111011

332转8进制:

332÷8=41.。。。。。4

41÷8=5.。。。。。1

5÷8=0.。。。。。5

转换为514

478转十六进制:

150÷16=9.。。。。6

9÷16=0。。。。。。9

输出为96

这里注意,这里我选了一个简单的数字来掩饰,但是太难的数字我们老师在这一块的视频有些问题,没讲,而且有些 复杂,我的主攻方向也不再这里,所以对读者造成不便的话,你咬我啊~~(百度上有)。

我们注意到,无论数字如何,除以要要转到的进制,除到商为0,看余数,然后倒着写出来,就是结果了。

原码补码反码的讲解

此处虽为了解部分,但是就像你刚玩LOL要看技能讲解一样,为的是让我们这群小白更好的理解计算机底层是怎么运算的,所以我也写上。

有符号的数据表示的方法:

原码 反码 补码

所有的数据运算都是采用补码进行的

我们以+7和-7来演示以上三码

为了区分正负号,我们采用符号定位法,0表示正值,1表示负值,以二进制来运算

所以7(十进制)先转为二进制为:00000111

然后第一位的数字是符号位,剩下7位为数值位

+7 符号位 数值为
原码 0 0000111
反码 0 0000111
补码 0 0000111
-7 符号位 数值为
原码 1 0000111
反码 1 1111000
补码 1 1111001

原码是带有符号位的二进制数据,正数的原码,反码,补码都一样

而负数的反码,在符号位不变,数值为0变1,1变0,补码在反码的基础上最后一位进行1和0的转换

数据类型的概述和分类(重点)

A:为什么有数据类型
我们都知道,变量其实就是内存中的一小块区域。我们定义一个变量,其实就是开辟了一个内存空间。
如果没有数据类型,那么我们需要开辟多大的内存空间合适呢?
为了解决这种问题,java就给我们提供了不同的数据类型,那么针对不同的数据类型,在内存中分配了不同大小的内存空间。
B:Java中数据类型的分类
(1): 基本数据类型
(2): 引用数据类型(后面讲解): 数组 , 类 , 接口
C:基本数据类型的详细讲解
(1): 数值型
整数型 字节数 范围
byte 1(8bit) -128 ~ 127
short 2(16bit) -2^15 ~ 2^15 - 1
int 4(32bit) -2^31 ~ 2^31 - 1
long 8(64bit) -2^63 ~ 2^63 - 1
浮点数
float 4(32bit) -3.40310^38 ~ 3.40310^38
double 8(64bit) -1.79810^308 ~ 1.79810^308
(2): 字符型 char 2(16bit) 0 ~ 2^16 - 1 = 65535
(3): 布尔型 boolean 1

整数默认是int类型的 , 浮点数默认是 double类型的

定义变量的注意问题

1.在同一作用域里面,不能定义两个同名变量

作用域:指同一对{ }所包括的范围

但是发生以下是不报错的。
纯小白的JAVA随堂笔记(变量,变量类型,进制相关)_第5张图片

2.变量没有赋值不能使用

纯小白的JAVA随堂笔记(变量,变量类型,进制相关)_第6张图片

敲代码时

int a=100; int b=123 //可以这样写,但是不建议,至于为什么,可能是为了好看整齐?发散思考

欲知后事如何,且听下回分解。。。。纯小白,做一下随堂笔记,也是为了加深印象,欢迎大家分析讨论,指出我的不足。一位老二次元的笔记,欢迎各位猛男来我家玩~~~~

你可能感兴趣的:(java)