JAVAweek5
进制
1、(十进制):752=2*10(0)+5*10(1)0+7*10(2)=752
(二进制):1011(二进制的数)=1*2(0)+1*2(1)+0*2(2)+1*2(3)
= 1 +2 +0 +8
=11
(二进制转换十进制简便)
0 1 0 1 0 1 1
64 32 16 8 4 2 1
(只有1的位置对应的相加即可)
(八进制)
111(二进制)=7,所以三位为一个八进制数
同理(十六进制)0x
1111(二进制)=15,所以四位为一个十六进制数---------超过9,用ABC....表示
结论:
八进制数,其实就是二进制位 3个二进制位一个八进制位
十六进制:其实就是二进制中的四个二进制位一个十六进制位
负数的二进制的最高位是1
负数二进制:取反,加一
变量
内存中的一个存储区域
该区域有自己的名称(变量名)和类型(数据类型)
该区域的数据可以在同一类型范围内不断变化
用来不断的存放同一类型的常量,并可以重复使用
格式:数据类型 变量名=初始化值
class VarDemo
{
public static void main(String[] args)
{
//数据类型 变量名 = 初始化值;
byte b = 3;
System.out.println(b);
}
}
---
class VarDemo
{
public static void main(String[] args)
{
//数据类型 变量名 = 初始化值;
{
int z = 9;
System.out.printn(z);//这段代码可以运行/*括号内的代码只在括号内运行*/
}
System.out.println(b);//这段代码不可以运行
}
}
自动类型提升(以占用类型较大的类型为主)
class VarDemo(可以运行)
{
public static void main(String[] args)
{
int x=3;
byte b=5;
x=x+b;
System.out.println(x);
}
}
class VarDemo(不可以运行)
{
public static void main(String[] args)
{
byte b=5;
b=b+4;
System.out.println(b);
}
}
强制类型转换
class VarDemo(可以运行)
{
public static void main(String[] args)
{
byte b=5;
b=(byte)(b+4);
System.out.println(b);
}
--------(华丽的分割线)--------
}
class VarDemo(可以运行,但是结果错误)【与二进制负数首位是1有关】
{
public static void main(String[] args)
{
byte b=5;
b=(byte)(b+400);
System.out.println(b);
}
}
字符类型运算
class VarDemo
{
public static void main(String[] args)
{
System.out.println('a'+1);
}
}
class VarDemo【ASCII表一一对应】
{
public static void main(String[] args)
{
System.out.println((char)('a'+1));
}
}
类型运算细节
class VarDemo
{
public static void main(String[] args)
{
byte b=4;
byte b1=7;
byte b2=3;
b=b1+b2;
System.out.println(b);
}
}
报错原因【byte类型取值有限(-128~127),进行默认强转】
b1和b2是变量,数值会变化,数值不确定,无法检查。
右边不确定是变量,是无法确定值的,可能不在范围之内
4:(强转前)|0000-0000 0000-0000 0000-0000 0000-0100|
(强转后)|0000-0100|
class VarDemo
{
public static void main(String[] args)
{
int x;
int x1=Integer.MAX_VALUE;
int x2=2;
x=x1+x2;
System.out.println(x1);
}
}
class VarDemo
{
public static void main(String[] args)
{
int x;
int x1=Integer.MAX_VALUE;
int x2=2;
x=x1+x2;
System.out.println(x);
}
}
原因:x1已经是最大值了,加法运算往前进位,只保留32位,33位舍弃,最高位变成了1,变为负数。
本文作者:TranquilTimber
本文链接:https://www.cnblogs.com/gbrr/p/16535748.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步