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,变为负数。
随机推荐
- FreeRTOS 基于 ARMv8-M 对 MPU 的应用
一.前言 ARMv8-M 支持 MPU,FreeRTOS 也添加了对这些 MPU 的应用代码.这里用来记录 FreeRTOS 对 MPU 应用方式的探究结果. 二.ArmV8-M MPU 介绍 ARM ...
- 不要再傻傻分不清 hash、 chunkhash 和 contenthash 啦
hash.contenthash 和 chunkhash 是通过散列函数处理之后,生成的一串字符,可用于区分文件. 文件名不带哈希值 webpack.config.js 文件中,output 中定义输 ...
- 使用CoreDNS自建dns
前言 公司有些内网服务需要使用域名访问,安装bind比较麻烦,故使用coredns实现域名服务. IP 说明 192.168.0.41 安装dns,作为dns服务器 192.168.0.20 测试服务 ...
- debian11编译安装freeswitch
前言 环境: 系统版本:debian 11 x86_64 FreeSWITCH版本:1.10.6 安装步骤 安装依赖(安装之前最好换apt软件源为国内的) apt install -y gnupg2 ...
- ctfshow--web入门--XXE
ctfshow--web入门--XXE web373 源码 <?php error_reporting(0); libxml_disable_entity_loader(false); //允许 ...
- 两种方式,轻松实现ChatGPT联网
两种方式效果: 方式一:浏览器搜索内嵌插件 方式二:官方聊天页内嵌插件 首先,要有一个谷歌浏览器,然后再安装一个叫ChatGPT for Google,直接在谷歌里搜一下就能找,也可以Chrome应用 ...
- RocketMQ系列(一) 基本介绍
RocketMQ系列(一) 基本介绍 1.MQ 作用 MQ 的应用场景主要包含以下 3 个方面: 1.1.异步与解耦 当我们下了一个订单之后,订单服务会进行 RPC 同步调用 支付服务.库存服务.物流 ...
- 这才叫 API 接口设计!
API 接口设计 Token 设计 Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个 Token 便将此 Token 返回给客户端,以后客户端只需带上 ...
- 用OLED屏幕播放视频(2): 为OLED屏幕开发I2C驱动
下面的系列文章记录了如何使用一块linux开发扳和一块OLED屏幕实现视频的播放: 项目介绍 为OLED屏幕开发I2C驱动 使用cuda编程加速视频处理 这是此系列文章的第2篇, 主要总结和记录一个I ...
- dedebiz发布文章自动提交到百度搜索的方法
修改程序文件 依次打开/admin/article_add.php和article_edit.php 找到ClearMyAddon($id, $title); 在其上面加入 //自动提交到百度 els ...