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,变为负数。
随机推荐
- 交换分区swap的创建与管理
前言 swap分区是linux系统中一块特殊的硬盘空间,当实际内存不够用的时候,系统会按照一定的算法将部分不用的数据放在swap分区中,从而为当前运行的程序腾出足够的内存空间.好处在于避免内存资源不足 ...
- 微服务项目使用RabbitMQ
微服务项目使用RabbitMQ 很久未用RabbitMQ了,根据网上的Demo,大多数是一个服务包含所有的生产者和消费者和配置,当自己去搭建服务的时候,还需要一些思考各种包的划分.无法无脑CV大法,所 ...
- 基于 SharpPcap 开发的简易嗅探器
Sniffer Based on SharpPcap A packet capture coursework based on sharpcap development 一个基于 SharpPcap ...
- Win11+ VS2022编译 FFmpeg6.0 静态库
目录 编译前言 为什么项目编译? 前期准备 环境配置 ffmpeg外部库 额外的编译选项-for渲染 opengl (需要glext) ffnvcodec (需要nv-codec-headers) A ...
- vue 实现 pdf 预览功能
1 技术背景 1.1 Vue.js 简介和特点 Vue.js 是一种用于构建用户界面的渐进式框架.它具有以下特点: 易学易用:Vue.js 的 API 设计简单直观,使得开发者可以快速上手. 响应式数 ...
- 微服务集成RabbitMq保姆级教程
本文通过简单的示例代码和说明,让读者能够了解微服务如何集成RabbitMq 之前的教程 https://www.cnblogs.com/leafstar/p/17641358.html 在这里我将介绍 ...
- 使用PIL为图片添加水印
使用pillow库为图片添加文件或者图片水印 下面是我们想要添加水印的图片: 图片水印: 效果图如下: ps:对图片添加字体时,需指定字体文件,如 simsun.ttc windows中在 C:\Wi ...
- 如何保持 SSH 会话不中断?
哈喽大家好,我是咸鱼 不知道小伙伴们有没有遇到过下面的情况: 使用终端(XShell.secureCRT 或 MobaXterm 等)登录 Linux 服务器之后如果有一段时间没有进行交互,SSH 会 ...
- glog 日志库简介与测试【GO 常用的库】
〇.前言 golang/glog 是 C++ 版本 google/glog 的 Go 版本实现,基本实现了原生 glog 的日志格式. 在 Kuberntes 中,glog 是默认日志库.因此需要详细 ...
- 再谈http请求调用(Post与Get),项目研发的核心一环
支持.Net Core(2.0及以上)与.Net Framework(4.0及以上) [目录] 前言 Post请求 Get请求 与其它工具的比较 1[前言] http请求调用是开发中经常会用到的功能. ...