学习内容


进制

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. 代码随想录算法训练营第八天| LeetCode 344.反转字符串 541. 反转字符串II 151.翻转字符串里的单词

    344.反转字符串 卡哥建议: 本题是字符串基础题目,就是考察 reverse 函数的实现,同时也明确一下 平时刷题什么时候用 库函数,什么时候 不用库函数 题目链接/文章讲解/视频讲解:https: ...

  2. zookeeper运维常用指令

    zkServer.sh ./zkServer.sh start:启动zookeeper ./zkServer.sh stop:停止zookeeper ./zkServer.sh status:查看zo ...

  3. CentOS7系统初始化个人配置

    以下内容为个人最小化安装后的配置步骤 更换yum源为阿里云 yum install -y epel-release lrzsz wget yum-axelget mv /etc/yum.repos.d ...

  4. 问题排查:nginx的反向代理感觉失效了一样

    背景 最近,负责基础设施的同事,要对一批测试环境机器进行回收,回收就涉及到应用迁移,问题是整个过程一团乱.比如服务器A上一堆应用要调用服务器B上一堆服务,结果服务器B被回收了,然后服务器A上一堆应用报 ...

  5. 虾皮shopee根据ID取商品详情 API 返回值说明

    ​ item_get-根据ID取商品详情  注册开通 shopee.item_get 公共参数 名称 类型 必须 描述 key String 是 调用key(必须以GET方式拼接在URL中) secr ...

  6. ShardingSphere实战

    前言 本文主要从sharding最新版本5.1.2版本入手搭建,按主键ID和时间进行分表. 本文主要介绍搭建过程,有兴趣了解shardingsphere的同学可以先自行查阅相关资料. shardsph ...

  7. Solidity-变量和数据类型[基本类型]

    在solidity语言中,变量和数据类型分为三类:基本类型(bool.int.address等),复合类型(array.struct.mapping等)和特殊类型(enum.function.modi ...

  8. Vue源码学习(四):<templete>渲染第三步,将ast语法树转换为渲染函数

    好家伙, Vue源码学习(三):<templete>渲染第二步,创建ast语法树, 在上一篇,我们已经成功将 我们的模板 转换为ast语法树 接下来我们继续进行操作   1.方法封装 由于 ...

  9. Go语言中匿名嵌套和类型嵌套的区别

    在Go语言中,匿名嵌套结构体和与类型同名的嵌套结构体不是完全等价的,它们有一些重要的区别.以下是它们之间的主要区别: 字段访问: 匿名嵌套结构体:当你使用匿名嵌套结构体时,内部结构体的字段可以被直接访 ...

  10. Record - Dec. 1st, 2020 - Exam. REC

    Prob. 1 Desc. & Link. 行走的形式是比较自由的,因为只要走到了最优答案处就可以不管了,所以不需要考虑游戏的结束. 考虑二分答案. 然后预处理出每个节点到 \(s\)(另一棵 ...