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,变为负数。
随机推荐
- Blazor前后端框架Known-V1.2.11
V1.2.11 Known是基于C#和Blazor开发的前后端分离快速开发框架,开箱即用,跨平台,一处代码,多处运行. Gitee: https://gitee.com/known/Known Git ...
- Docker使用教程及常用命令
Docker是一个开源的应用容器引擎,允许开发者将应用以及依赖打包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows上.它非常适用于持续集成与持续交付(CI/CD). 1. 安装 ...
- 程序后台运行方法:使用守护进程 或 screen软件
我们常需要SSH远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,在此期间不能关掉窗口或者断开连接,否则这个任务会被杀掉,一切就半途而废了. 可以使用以下两个方法: 方法一:noh ...
- 带你读论文丨Fuzzing漏洞挖掘详细总结 GreyOne
本文分享自华为云社区<[论文阅读] (03) 清华张超老师 - Fuzzing漏洞挖掘详细总结 GreyOne>,作者: eastmount. 一.传统的漏洞挖掘方法 演讲题目: 数据流敏 ...
- 分布式测试插件 pytest-xdist 使用详解
使用背景: 大型测试套件:当你的测试套件非常庞大,包含了大量的测试用例时,pytest-xdist可以通过并行执行来加速整体的测试过程.它利用多个进程或计算机的计算资源,可以显著减少测试执行的时间. ...
- API数据接口获取商品详情数据该怎么操作
随着电商行业的快速发展,获取商品详情数据是电商应用的重要功能之一.为了提高用户的购物体验,开发者可以利用API接口获取商品详情数据,方便用户了解商品的具体信息和特点.在本文中,我们将介绍如何使用API ...
- 本地项目上传到Git仓库
1. 进入项目主目录,打开Git Bash,执行以下命令,将项目变为一个git管理的项目: $ git init 执行成功后,会在项目根目录生成一个.git的文件夹. 可以执行以下命令查看项目状态: ...
- MD5&MD5盐值加密到BCryptPasswordEncoder
MD5&MD5盐值加密 Message Digest algorithm5,信息摘要算法: 压缩性:任意长度的数据,算出的MD5值长度都是固定的 容易计算:从原数据计算出MD5值很容易 抗修改 ...
- 深入理解HTTP的基础知识:请求-响应过程解析
首先,我们从网络协议的最顶层开始讲解,即应用层.在网络通信中,应用层是最接近用户的一层,它负责为特定的网络应用提供服务和功能.应用层协议定义了数据交换的规则和格式,以便不同的应用程序能够相互通信和交换 ...
- 「repost - from Quack」Matroid.md
拟阵?type=header 拟阵的定义与常见性质 & 拟阵交算法 拟阵的定义与常见性质 独立集系统和拟阵 定义独立集系统\(S=(E,\mathcal{I})\),\(E\)是基本元素的集合 ...