一、数据的表达详细介绍
1.1整数在计算机中的存储原理
其实任何数据在计算机中都是以二进制表示的。那这里肯定有人问,什么是二进制啊?所谓二进制其实就是一种数据的表示形式,它的特点是逢2进1。
数据的表示形式除了二进制(逢2进1),八进制(逢8进1)、还有十进制(逢10进1)、十六进制(逢10进1)等。
那么二进制是如何转换为十进制,这里介绍一种方法:除2取余法
具体怎么实现:让十进制数据连续除以2,直到商为0,余数反转
例如:求6的二进制
计算机的最小存储单位
前面我们已经知道计算机表示数据是用二进制来的, 这里我又要抛出一个问题来了! 我现在想要在计算机中存储一个整数6,转换为二进制是110,那么计算机中只是存110吗三位数字吗? 其实不是的,计算机中最小的存储单位是字节(Byte),一个字节占8位(bit),也就是说即使这个数据不足8位也需要用8位来存储。
1.2 数据的其他表示
二进制转十进制
二进制转八进制
二进制转十六进制
当然这些当做了解,现在计算机自带的计算器中都能实现对进制的转换。
二、数据类型的详解
比如int a = 10;
这里的int
就是限制变量只能存储整数; 除了int这种数据类型Java还提供了很多其他的数据类型。Java的数据类型整体上来说分为两大类: 基本数据类型、引用数据类型。
2.1基本数据类型
值得我们注意的是,随便写一个整数或者小数的字面量,它也是有默认数据类型的
例如
- 比如23,它默认就为int类型;如果加上后缀L,则为long类型;
- 比如23.8,它默认为double类型;如果加上后缀F,则为float类型;
下面定义各种类型的变量
案例:
三、数据类型的转换
3.1自动类型转换
问题:什么是自动类型转换?
自动类型转换指的是,数据范围小的变量可以直接赋值给数据范围大的变量
byte a = 12;
int b = a; //这里就发生了自动类型转换(把byte类型转换int类型)
数据类型的范围大小
下面我们通过代码演示一下,自动类型转换的各种形式。
-
表达式的自动类型转换
自动类型转换还有另外一种形式,就是表达式的自动类型转换。所谓表达式指的是几个变量或者几个数据一起参与运算的式子。
如果同一个表达式中,出现不同类型的变量或者数据一起运算,这种情况下运算结果是一个什么数据类型呢?需要遵守下面的两条运算规则:
1.多种数据类型参与运算,其结果以大的数据类型为准
2.byte,short,char 三种类型数据在和其他类型数据运算时,都会转换为int类型再运算
下面通过代码来实现一下表达式的自动类型转换
总结
3.2 强制类型转换
前面我们学习了自动类型转换,我们知道可以将数据类型小的数据可以直接赋值给数据范围大的变量。 那反过来,能不能将数据范围大的数据直接赋值给数据范围小的变量呢? 答案是会报错。
因为数据范围大的数据,赋值给数据范围小的变量,它有可能装不下;就像把一个大桶的水倒入一个小桶中,有溢出的风险。
强制类型转换的格式:目标数据类型 变量名 = (目标数据类型)被转换的数据
下面通过代码来实现强制类型的转换
强制类型转换的原理,其实就是强行把前面几个字节砍掉,但是有数据丢失的风险。
四、运算符
运算符就是参与运算的符号。Java提供的运算符有很多种,可以分为算术下面几种
-
基本算术运算符
-
自增自减运算符
-
赋值运算符
-
关系运算符
-
逻辑运算符
-
三元运算符
基本运算符
4.1基本算数运算符、+符号做连接符
算数运算符有哪些?
+ 、-、 *、 /、 %
/ 需要注意什么?
如果两个整数做除法,其结果一定是整数。
+ 除了做基本数学运算,还有哪些功能?
与字符串做+运算时会被当成连接符,其结果还是字符串。
识别技巧:能算则算,不能算就在一起。
4.2自增自减运算符
①单独使用,对结果没有影响
②混合使用,++或者--在变量前(++a/--a),前进行自增或者自减,再使用变量;++或者--在变量后(a++/a--),先试用变量,在进行自增或者自减。
Demo
4.3赋值运算符
就是“=”从右边往左边看
Demo
4.4关系运算符
判断的最终返回值是true或false
4.5逻辑运算符
Demo
4.6三元运算符、运算符的优先级
格式:条件表达式 ?值1:值2
Demo
以上内容仅个人理解。