1)零碎知识

杂:

1 byte=8 bit

java 中进制的表示
二进制 0b开头
八进制 0开头
十进制
十六进制 0x开头

原码:二进制 最高位符号位 0正1负
反码:若为负数 符号位不变 其他位取反
补码:若为负数 反码加一
正数三码相同

八种基本数据类型
byte :一个字节 -128~127
short:两个字节 -2^15 ~2^15-1
int :四个字节 -2^31 ~2^31-1
long :八个字节 -2^63 ~2^63-1

float : 四个字节
double :八个字节

char :两个字节 0~65535
boolean: true和false 理论上八分之一个字节 实际上没有具体大小

long x=8888888888
整数默认为int型 而上面的数字超过int型范围 会报错
long x=8888888888L

float f =12.3
小数默认为double型 上面这种赋值可能损失精度
float f=12.3f

隐式转换
int x=3;
byte b=4;
x=x+b;
b先提升为int型

强制转换
int x=3;
byte b=4;
b=x+b;
报错精度损失 x+b为int型 赋值给byte型会损失精度
b=(byte)(x+b);

强制转换超出范围
byte b=126+4;
报错 损失精度 126+4>127 变为int型
byte b=(byte)(126+4); =-126
130的二进制补码
00000000 00000000 00000000 10000010
赋值给byte后补码
10000010
反码 10000001
原码 111111110 答案是-126

byte b=300;

		byte b=(byte)(300);
		System.out.println(b);
		//b=44;

byte b1=3;
byte b2=4;
byte b3=b1+b2;
错误1.byte、short、char之间运算会提升为int 两个int之和为int
会损失精度
2.两个byte相加有可能超出byte范围

byte b=3+4 正确
等价于 byte b=7;
只要给byte型变量赋值-128到127 之内的数 就是byte型 不是int型

byte,char,short ->int->long->float->double
float比long大
float四个字节 32位
1符号位 8指数位 23尾数位 指数位0~255
0代表0 255代表无穷大

'a‘+1 98
char('a’+1 ) b

任何数据类型用加号和字符串连接都会产生新的字符串
“hello”+‘a’+1 helloa1
‘a’+1+“hello” 98hello

“5+5=”+5+5 5+5=55
“5+5=”+(5+5) 5+5=10

char a=97 结果为a
与 byte b=100同理 97在byte的取值范围内
char 可以存储中文

byte b=10;
b++ //等价于b=(byte)(b+1)
b=b+1 报错

short s=1;s=s+1 报错
s+=1 //等价于s=short(s+1);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值