基本数据类型以及相关知识点

// 数据类型 : 基本数据类型(8种) + 引用类型(很多)
/1.整数类型:byte short int long
2.浮点类型:float double
3.字符类型:char
4.布尔类型: boolean
原码 补码 反码
正数补码: 原码
负数补码:原码 取反 + 1
/
/
******************************************************************************************************/
//二进制补码形式存储
/

*byte : 8位 2^7 - 1 ~ 2^7
*short :16位 2^15 - 1 ~ 2^15 32000+
*int : 32位 2^31 - 1 ~ 2^31 21亿7+
*long :64位 2^63 - 1 ~ 2^63 时间 从1970年开始计算,可以表示到2000+万年后
*从高位到低位为自动类型转换,低到高是强制类型转换,可能会导致精度缺失
*如下
*/

	 	*byte b = 127;
		*short s = 128;
		*s = b ;            //自动类型转换
		*b = (byte)s ;      // 强制类型转换  -> 只留低8位  ,可能会丢失精度

/************************************************************************************************/
/byte 8 位 1111 1111 首位符号位,实际数字位为后7位
* 最大值为 0111 1111 -> 127
* 0111 1111
* 0111 1110
* 0111 1101
* 0111 1100
* 0111 1001
* 0111 1000
* …
/
/
************************************************************************************************/
/

* float: 32位 1位符号位 8位指数位 (-128 ~ 127) 23位尾值数位 2^23位尾数 精确度达到10进制小数点后6~7 位
* double: 64位 1位符号位 11位指数位 52位尾数位 精确度达到10至今小数点后9位左右
*
* 这两种都是存在精度缺失问题的(无法避免除不尽的问题),所以小数不能进行数值相等的判断,可以进行范围的判断
*/

	float f = 3.1415926f;          //所有的浮点数字面量默认都是double类型  
	double d = 3.1415926;          //默认double转化为float可加f/F
	
	double d1 = 5.0 - 4.9 ;
	System.out.print(d1);
	d1 = 3.0- 2.9 ;
	System.out.print(d1);

/*****************************************************************************************************/
/*
* 字符: char 位数16 不存在符号位 最大值 2^16 - 1 = 65535 ~ 0
* UTF-8(国际编码) GBK(国内编码) 字节- 》 编码 = 字符 翻过来是 解码
*/

	char c = '中' ;
	c = 65 ;                         //A       ASCII码
	c = '\u4e2d';                    // 0 ~ 65535    \u0000 ~ \uffff     Unicode编码
	System.out.println(c);
	c = '\uffff' ;                   //16进制数
	
	int a = 017 ;                    //8进制 a = 15 
	System.out.println(a);
	a = 0xe;                         //16进制 a = 14
	System.out.println(a);

/*
/*
* boolean类型
*/

	boolean b = true;
	b = false;
	b = 3==1;

/
/**************************************************************************************************/
/*
* 运算符
* …
* 算术运算符 + - * / % ++ –
* 赋值运算符 = =+ =- =* =/
* 逻辑运算符 & | ! && || 结果为true/false
* 比较运算符 > < >= <= == != 结果为true/false
* 位运算符 << >> >>> & | ^ >>>为无符号右移 >> 跟 <<为带符号移位运算
* 三目运算符 ? :
*/

	int a = 0 ;
	int b = 10;
	int c = a ++ + b ;
	System.out.println(a);
	int d = ++ a + b;
	System.out.println(a);
	System.out.println(d);
	double  e = 3.0 / 2 ;
	byte bb = 1;
	bb += 1 ;          //bb = bb + 1(赋值运算符不会改变变量的类型)
	
	int t = 2 & 6; // 0010 & 0110   = 0010
	System.out.println(t);
	int m = 2  <<  1;          
	System.out.println(m);
	int g = -4  >>>  1;
	System.out.println(g);

// &和 &&逻辑运算

	int o = 10;
	int p = 11;
	boolean x = o++ > p && p-- < 10;
	System.out.println(o);        //11
	System.out.println(p);        //  & 10    && 11     (短路现象)
	System.out.println(x);

//如果 p >= 10 就1 否则 就0 => if-else

	int y = p >= 10 ? 1:0;           //问号前是一个布尔类型或者是一个可以计算成布尔类型的式子
	System.out.println(y);

/********************************************************************************************************************/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值