Java 数据类型的分类:
整型: int, float,double, int 存储整数类型,float 和double存储小数
非整型: boolean , char,String, date
存储范围:
计算机唯一可以存储的是0,1,就算计最小存储的单位是bit,十进制数是我们可以识别的数字,十进制数转二进制数除二取整,二进制数转十进制数按照位权展开。二进制数的计算是封二进1.
计算机存储 对应10进制数
0000 0000 0
0000 0001 1 0001+0001= 0010 封二进一
0000 0010 2
练习1:写出二进制数0-15的表现形式。
问题:一个八位的存储空间最大能存储的十进制数是多少?
int 4个字节=4*8=32 位
double 站8字节=64位
foat 站4个字节=32位
计算机中存储的是二进制数的补码:
正数:源码,反码,补码都一样
负数:
负数的最高位是符号位,1代表负数
反码:符号位不变,其他位取反
补码:反码+1
???为什么搞出了这么多码,有病呀????计算机由于位数固定,如果使用源码计算会产生数据溢出,那么计算器的计算结果就不准确了,如:
+7+-7=转二进制计算不等于0,转成-7转成反码后才会等于0.
十进制数字23转二进制数是多少?(按照除二取余)
二进制数01000100转10进制数是多少?(位权算法)
-8的二进制补码是多少?(按位取反,末尾加一)
推算8+(-8)的计算机推算过程?
-----------------------------------------------------------------------
变量的命名规则:
错误的有:(1)名字中有空格
(2)系统关键字不可以,比如class java int true
(3)数字+字符不可以:123abc
正确的有:
字 :abc
下划线:_
美元:$
人民币:¥ shit+$
字母+数字:b1 ,a34
编程练习1:分别输入个人的姓名(String),年龄(int),性别(char),家庭住址(String),是否已婚(boolean),身高(double)类型, 然后存储到不同类型的变量中,输出结果。
(1)如果大于18,提示已经成年了
(2)如果boolean等于true 那么提示已经结婚了。
备注:不同的数据类型在接收的时候要调用不同的方法:如
Scanner input=new Scanner(System.in);
double shengao=input.nextdouble();
---------------------代码1---------------------------
//只存储一个字符
char a1='a';
//多个char 类型组成一个字符串
String b1="abcdefsd年后";
//真假类型
boolean c1=true;
//数值
int d1=456788999;
//双精度
double e1=45.6777;
/* 三元运算符:根据前面的判断来输出格式
如果是true 输出第一个字符否则输出第二个字符
ctrl+shift+/
放开注释ctrl+sift+\*/
//两个等于号是判断条件 结果为boolean类型
//一个等于号是赋值
System.out.println(1==3);
//不等于
System.out.println(1!=3);
//字符串类型加上boolean 类型的表达式,那么需要使用()
System.out.println("1>=3的结果是:"+(1>=3));
int d=5;
//算元运算符
System.out.println(d==4?"你说对了":"傻呀");
-----------------代码2--------------------------------
System.out.println("请你输入一个数字100--");
Scanner dScanner=new Scanner(System.in);
int b=dScanner.nextInt();
System.out.println(b==100?"输入正确":"输入错误");
System.out.println(b==100?56:77);
System.out.println(b==100?true:false);
System.out.println(b==100?true:"滚");