首页 > 其他分享 >m1_day3

m1_day3

时间:2024-05-10 23:20:00浏览次数:17  
标签:BigDecimal int 数据类型 day3 char 二进制 m1 byte

课程内容:
  • Java中的数据类型

  • Java中的运算符


Java中的数据类型
  • 什么是数据类型

    数据类型可以理解成数据的单位 
    Java是一个强类型的编程语言 所有的变量在第一次出现的时候必须有数据类型 第二次出现不需要数据类型

    钱:元 角   分 百 美元 日元
    个数:个 只 条 栋....
    长度:毫米 米 千米 厘米
  • 面试题:Java中的数据类型分为几种?

    2种
    基本数据类型 简单数据类型 程序里面自带的数据类型
    引用数据类型 自定义数据类型 程序员自己开发的数据类型
  • 面试题:Java中的基本数据类型分为几种?

    4类8种

    布尔类型:boolean -> 需要判断
      *:只能使用true[真]/false[假]进行赋值
      *:在C++中可以使用true/false/数字 进行赋值
       
      boolean x = true;
      boolean y = false;
       
    字符类型:char 底层基于Unicode编码实现的 不区分中英文 统一的都是2个字节 = 16位
    1个字节 = 8个位
    char x = 'a';//指定字面值的赋值方式
    char y = '中';//指定字面值的赋值方式
    char z = '\t';//转义字符
    \t \r \b \n
    制表符 返回行首 退格键 换行
    char a = 97;//通过ascii编码进行赋值
    char b = '\u4e2d';//通过Unicode编码进行赋值
     
        char内容的长度必须是1
        String内容的长度不定
       
    整数类型:符号位1 + 数值位n-1

    byte short int long
    8       16     32     64     位
    1       2       4     8     字节
                    *   L/l

    *:整数类型默认是int类型
    *:long类型的结尾需要加上L/l 尽量写L
    *:如果数字超出int类型最大边界的话 注意使用long

    int num1 = 55;//十进制赋值 *****
    int num2 = 055;//八进制赋值
    int num3 = 0x55;//十六进制
    int num4 = 0b1100;//二进制 since jdk7.0

    byte:-128 127
    short:-32768 32767
    int:-2147483648 2147483647
    long:-XXX   XXX

    浮点类型:符号位 + 幂值位 + 数值位
    float double
    32         64
    F/f         D/d
    *
    单精度 双精度

    float x = 45.5F;//F需要加上
    double y = 45.5D;//D可以不加

    float = 符号位1 + 幂值位8 + 数值位23
      double = 符号位1 + 幂值位11 + 数值位52
       
      float精度 < double 精度 < BigDecimal
       
    如何创建BigDecimal对象:
    BigDecimal x = new BigDecimal("值");
    加法:[BigDecimal] BigDecimal对象1.add(BigDecimal对象2)
    减法:[BigDecimal] BigDecimal对象1.subtract(BigDecimal对象2)
    乘法:[BigDecimal] BigDecimal对象1.multiply(BigDecimal对象2)
    除法:[BigDecimal] BigDecimal对象1.divide(BigDecimal对象2)
    比较:[int] BigDecimal对象1.compareTo(BigDecimal对象2)
  • 基本数据类型之间的转换

    取值范围小-》大
    char取值范围:0-65535
    byte取值范围:-128 127
    short取值范围:-32768 32767
      char
      16
    byte short int long float double
    8 16 32       64         32         64

    当我们拥有左侧的数据类型[取值范围较小] 想要变成右侧的数据类型[取值范围较大] 直接赋值 转换自动完成
    当我们拥有右侧的数据类型[取值范围较大] 想要变成左侧的数据类型[取值范围较小] 不能直接赋值 需要强制类型转换

    总结:
    小的数据类型可以直接给大的数据类型赋值
    大的数据类型需要强转成小的数据类型
    char和short之间需要双向强转 [取值范围交集]
    char和byte之间需要双向强转 [取值范围交集]
  • 十进制和二进制之间的转换

    正数:
    1 2 4 8 16 32 64 128 256 512....2(n)

    byte x = 45;
    45 = 32 + 8 + 4 + 1 = 00101101

    byte x = 77;
    77 = 64 + 8 + 4 + 1 = 01001101


    负数:正数二进制取反+1
    0 + 0 = 0
    0 + 1 = 1
    1 + 0 = 1
    1 + 1 = 10

    byte x = -45;
    正数:45 = 00101101
    取反 11010010 +
                  1
          11010011
           
    byte x = 100;
    100 = 64 + 32 + 4 = 01100100
    byte y = -100;
    01100100
    取反 10011011
    +         1
      10011100


    byte x = 80;
    80 = 64 + 16 = 01010000
    byte y = -80;
    正数:01010000
    取反:10101111
    +         1
    10110000
  • 浮点类型和二进制之间的转换

    float x = 45.75F;

    1:将两个部分全部转换成二进制
    45 = 32 + 8 + 4 + 1 = 101101
    0.75 = 11
    不断 * 2取整数
    0.75 * 2 = 1.5
    0.5 * 2 = 1.0
    101101.11

    2:将上面的结果转换成二进制的科学计数法
    101101.11
    1.0110111 * 2(5)

    3: 对号入座
    符号位1 + 幂值位8 + 数值位23
    0   10000100 01101110000000000000000
     
    幂值位默认值:127 + 5 = 132=128+4=10000100

    01000010001101110000000000000000


    float x = 100.25F;
    1:将两个部分全部转换成二进制
    100 = 64 + 32 + 4 = 1100100
    0.25 = 01
    0.25 * 2 = 0.5
    0.5 * 2 = 1.0
    1100100.01

    2:将上面的结果转换成二进制的科学计数法
    1100100.01
    1.10010001 * 2(6)

    3:对号入座
    符号位1 + 幂值位8 + 数值位23
    0     10000101 10010001000000000000000
    127 + 6 = 133 = 128 + 4 + 1 = 10000101

      100.25 -》 01000010110010001000000000000000
       
     
    float x = 25.5F;
    1:将两个部分全部转换成二进制
    25 = 16 + 8 + 1 = 11001
    0.5 = 1
    0.5 * 2 = 1.0
    11001.1
    2:将上面的结果转换成二进制的科学计数法
    11001.1
    1.10011 * 2(4)

    3:符号位1 + 幂值位8 + 数值位23
    0     10000011 10011000000000000000000
    127 + 4 = 128 + 2 + 1 = 10000011
     
    01000001110011000000000000000000
     
    float y = 17.1F;
    两个部分全部转换成二进制
    17 = 16 + 1 = 10001
    0.1 = 000110011[0011]
    0.1 * 2 = 0.2
    0.2 * 2 = 0.4
    0.4 * 2 = 0.8
    0.8 * 2 = 1.6
    0.6 * 2 = 1.2
    0.2 * 2 = 0.4
    0.4 * 2 = 0.8
    10001.000110011[0011]

    将上面的结果转换成二进制的科学计数法
    10001.000110011[0011]
    1.0001000110011[0011] * 2(4)

    符号位1 + 幂值位8 + 数值位23
    0 10000011 00010001100110011001100
    127 + 4 = 128 + 2 + 1 = 10000011

    01000001100010001100110011001100

小结:

数据类型:
• 基本数据类型:
• 引用数据类型 程序员自己开发的数据类型 -》 class XXX
重点:
- 理解boolean char int long double的使用场景
- 熟悉BigDecimal常规方法
- 基本数据类型相互赋值
- 引用数据类型的开发

标签:BigDecimal,int,数据类型,day3,char,二进制,m1,byte
From: https://www.cnblogs.com/zhaodenghui33/p/18185467

相关文章

  • m1_day4
    课程内容:Java中的运算符Java中的变量Java中的运算符:高-》低[+-*/%]+:当+遇到String类型的时候不再表示算数加法而是表示追加连接任何一个数据类型想要变成String+""intx=45;Stringy=x+"";*:当心数值超出int类型最大边界注意使用lon......
  • day3
    课程内容:什么是异常?为什么要处理异常?如何处理异常?什么是异常?Java当中所有“问题”的体系结构    Throwable[可以向外抛出的]​ErrorException [错误] [异常]​RuntimeException......
  • day31-jQuery
    1、jQuery介绍jQuery是什么jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。jQuery设计的宗旨是“writeLess,DoMore”,即倡导写更少的代码,做更多的事情。它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计......
  • QBXT五一集训DAY3笔记
    \(Day\)\(3\)位运算位运算包含了五个运算符,分别是:&与只有两个对应位都为\(1\)时才为\(1\)|或只要两个对应位中有一个\(1\)时就为\(1\)^异或只有两个对应位不同时才为\(1\)<<左移如\(n<<i\)表示将\(n\)的二进制向左移动\(i\)位,等价于\(n*2^i\)>......
  • 【未整合】数学 day3.2
    阶对于\(\gcd(a,p)=1\),最小的\(t\)使得\(a^t\equiv1(\bmodp)\)称为\(a\)的阶。写作\(\operatorname{ord}_p(a)\)。若\(a^k\equiv1(\bmodp)\),当且仅当\(\operatorname{ord}_p(a)|k\)。求阶的复杂度是\(O(\sqrt{n})\)。给定\(\gcd(a,p)=\gcd(b,p)=1\),问是否存在......
  • Multisim14--软件简介及安装教程(内含安装包)
    安装包见文章末尾 一、软件简介Multisim是美国国家仪器(NI)有限公司推出的以Windows为基础的仿真工具,适用于板级的模拟/数字电路板的设计工作。它包含了电路原理图的图形输入、电路硬件描述语言输入方式,具有丰富的仿真分析能力。工程师们可以使用Multisim交互式地搭建电路原......
  • day30-JavaScript(2)
    1、BOM对象BOM:Broswerobjectmodel,即浏览器提供我们开发者在javascript用于操作浏览器的对象。1.1、window对象窗口方法//BOMBrowserobjectmodel浏览器对象模型//js中最大的一个对象.整个浏览器窗口出现的所有东西都是window对象的内容.console.log(window);......
  • 云计算运维day3
    云计算运维day3花括号用法一次性在同级目录,创建多个文件关于进程号第二个数字是进程号id,不断变化表示是每一次都生成了新的进程,也就是该grep是临时生成的。mkdir{hx,wjq,hw}rm{hx,wjq}touch玩家{1..100}.log压缩和解压缩的概念打包,默认是没有压缩功能,不节省磁盘空间......
  • cf gym101981e Eva and Euro coins
     20182019-acmicpc-asia-nanjing-regional-contest-en.pdf(codeforces.com) 这类字符串的能否从s状态到达t状态的题。还可以删除若干子串后然后比较。感觉是一种套路。 100↔111↔001011↔000↔110 01001↔10010可以移动 用栈,如果找到k个连续相同,然后栈删掉这k......
  • LibreOJ-3038 「JOISC 2019 Day3」穿越时空 Bitaro <线段树> 题解
    审题一条链每条边有通行时间上下界限制通过一条边需要\(1\)单位时间站在当前节点时间减少\(1\)耗费\(1\)单位代价\(q\)次询问要么更改一条边的通信时间上下界要么询问在\(b\)时刻在城市\(a\),\(d\)时刻到达城市\(c\)的最小代价思想做题准备......