学习内容


进制

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,变为负数。

随机推荐

  1. FreeRTOS 基于 ARMv8-M 对 MPU 的应用

    一.前言 ARMv8-M 支持 MPU,FreeRTOS 也添加了对这些 MPU 的应用代码.这里用来记录 FreeRTOS 对 MPU 应用方式的探究结果. 二.ArmV8-M MPU 介绍 ARM ...

  2. 不要再傻傻分不清 hash、 chunkhash 和 contenthash 啦

    hash.contenthash 和 chunkhash 是通过散列函数处理之后,生成的一串字符,可用于区分文件. 文件名不带哈希值 webpack.config.js 文件中,output 中定义输 ...

  3. 使用CoreDNS自建dns

    前言 公司有些内网服务需要使用域名访问,安装bind比较麻烦,故使用coredns实现域名服务. IP 说明 192.168.0.41 安装dns,作为dns服务器 192.168.0.20 测试服务 ...

  4. debian11编译安装freeswitch

    前言 环境: 系统版本:debian 11 x86_64 FreeSWITCH版本:1.10.6 安装步骤 安装依赖(安装之前最好换apt软件源为国内的) apt install -y gnupg2 ...

  5. ctfshow--web入门--XXE

    ctfshow--web入门--XXE web373 源码 <?php error_reporting(0); libxml_disable_entity_loader(false); //允许 ...

  6. 两种方式,轻松实现ChatGPT联网

    两种方式效果: 方式一:浏览器搜索内嵌插件 方式二:官方聊天页内嵌插件 首先,要有一个谷歌浏览器,然后再安装一个叫ChatGPT for Google,直接在谷歌里搜一下就能找,也可以Chrome应用 ...

  7. RocketMQ系列(一) 基本介绍

    RocketMQ系列(一) 基本介绍 1.MQ 作用 MQ 的应用场景主要包含以下 3 个方面: 1.1.异步与解耦 当我们下了一个订单之后,订单服务会进行 RPC 同步调用 支付服务.库存服务.物流 ...

  8. 这才叫 API 接口设计!

    API 接口设计 Token 设计 Token 是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个 Token 便将此 Token 返回给客户端,以后客户端只需带上 ...

  9. 用OLED屏幕播放视频(2): 为OLED屏幕开发I2C驱动

    下面的系列文章记录了如何使用一块linux开发扳和一块OLED屏幕实现视频的播放: 项目介绍 为OLED屏幕开发I2C驱动 使用cuda编程加速视频处理 这是此系列文章的第2篇, 主要总结和记录一个I ...

  10. dedebiz发布文章自动提交到百度搜索的方法

    修改程序文件 依次打开/admin/article_add.php和article_edit.php 找到ClearMyAddon($id, $title); 在其上面加入 //自动提交到百度 els ...