一、进制转换

1.1 其他进制转十进制(以十六进制为例):

  十六进制范围:0-9, A-F对应数字10-15 

  2A7E(16)  =  14*16(0) +7*16(1) + 10*16(2)  + 2*16(3) =  10878(10)

1.2 十进制转二进制:将十进制数除以2,取余数,将最后一位余数排在第一位,倒数第二位的数排在第二位,依次排列,构成的01数字串即为表示该十进制数的二进制数。

  总结:十进制%二进制 余数 0-1(Java中符号 “%”表示取余),逆序排列。

(图片引自百科)

1.3 十进制转八进制:十进制%八进制 余数 0-7,逆序排列。

  为了区分十进制在数前加0区分   202  ----0312

1.4 十进制转16进制:十进制%16进制 余数 0-9 A-F(),逆序排列。

为了区分十进制在数前加0x区分   1203 --- ox4B3

二、数据类型之间的转换

  两种方式:隐式转换和强制转换

2.1 隐式转换

存储范围从小到大自动实现隐式转换

byte b1 = 3;

byte b2 = b1 + 4;    //隐式转换

int i = b1; 隐式转换

例程:Demo1.java

 1 public class Demo1{
2 //基本类型的隐式转换
3 public static void main(String [] args) {
4 //byte b = 128;
5 byte b1 = 1;
6 //byte b2 = b1 + 1; //隐式转换,结果byte转为int,报错
7 byte b3= 2+3; // 没隐式转换,byte 不会报错
8 int i=b1; //隐式转换
9
10 short s = b1;
11 //short s1 = 1 +s;
12
13 char c = '1';
14 int i1 = c + 1; // 50 隐式转换
15 System.out.println(i1);
16 System.out.println("b1的值为"+b1);
17 System.out.println(b3);
18 System.out.println(i);
19 System.out.println(s);
20 }
21
22 }

注:byte short与 char 之间没有隐式转换

2.2 强制转换:存储范围从大范围数据类型到小范围数据类型强制转换。

小范围数据类型  变量名 = (小范围数据类型)   数据

double ->float->long->int->short->byte

          -char

int i = 1;

byte b  = (byte) 1;

例程:Demo2.java

 1 public class Demo2 {
2 public static void main(String[] args) {
3 // 基本数据的强制转换
4 int i = 4;
5 byte b = (byte) i;
6 System.out.println(b);
7
8 double d = 4.3536;
9 float f = (float) d;
10 long l = (long)d ;//强转导致数据精度丢失
11 System.out.println(l);
12
13 int i2 = 128;
14 byte b2 = (byte) i2; // -128 强制类型转换造成数据溢出 原码 反码 正数不变负数各位取反, 补码:正数不变负数反码+1;
15 System.out.println(b2);
16 }
17
18 }

注:强制转换可能造成数据的溢出或者精度的丢失。

三、引用数据类型

3.1 除了基本数据类型外,其他数据类型都是引用数据类型。

String   Arrays  Scanner

String :字符串。Java中用双眼号内,“内容”的数据称为字符串

eg: “1235”  “我按你你们慢慢”

3.2 思考:Java中char 类型数据能不能存储一个汉字?

答:能;

因为Java中编码格式采用Unicode编码,Unicode编码中一个英文或一个汉字各占两个字节,char类型能够储存两个字节的数据。所以可以。

例子Demo3.java

 1 public class Demo3 {
2 public static void main (String [] args) {
3
4 //引用类型String的运用
5 String s1 = "I Love ";
6 System.out.println(s1);
7
8 // 算术运算符+号的运用
9 System.out.println(1 + 2 + 3 + 4); // 10 加法运 运算没有优先级左到右依次执行
10 System.out.println(1 + 2 + "字符串"); // "3 字符串“ 先加法运算,后字符串拼接
11 System.out.println(1 + 2 + 3 + "4"); // "64"
12 System.out.println(1 + 2 + "3" + 4); // "334"
13 System.out.println(1 + "2" + 3 + 4); // "1234"
14 System.out.println("1" + 2 + 3 + 4); // "1234"
15 }
16
17 }

四、运算符

3.1分类:算术运算符、关系运算符、逻辑运算符、按位运算符、条件运算符

3.2算术运算符

  +  -  *  /  %  ++   --

1、+ :在Java中既可以做加法运算也可做拼接。

  当+ 号两边都是整型或浮点型时做加法运算,当至少一边是字符串类型时做拼接类型。

  注:当做拼接操作时隐式转换为字符串格式。

  例程:如上Demo3.java

2、/ :表示取整操作      5/2   运行结果为  2

% :取余操作         5%2 运行结果为: 1

   注:要想得到数学中的除法运算结果俩个数据至少有一个为浮点类型。

给定一个数99999秒,将其转为多少小时多少分中多少秒?

99999%

例子Demo4.java

 

3、前++,后++,前--,后--

int i = 5; int j ;

前++: ++i  规则:先自身加1,再后运算。

j = ++i;  i = 6   j = 6;

后++: i++  规则:先运算,再自加1。

j = i++; i = 6,  j = 5;

int i = 5; int j ;

前--: j = --i;   i = 4;  j = 4;

后--: j = i--;   i = 4;  j = 5;

例程:Demo5.java

 

3.3 关系运算符

>   <  >=  <=  !=   ==

1.运算结果:布尔类型true 、false

2.  ==:当等号两边是数值时可以比较等号两边数值是否相等(也是比较地址值),如果是引用类型是比较地址值是否相等。

思考:为什么是数据类型可以比较数值是否相等?

因为数值类型数据再计算机中是共享的,如果声明了一个数值型变量,并初始化了一个数据X,计算机会开辟一个新的的内存空间存储X的值,当定义了另一个同种数据类型数据x,机器在已开辟的内存空间会查找是否有x,若和X表示的是同一个数值,再计算机中不会再另开辟空间为x数值储存而是将地址值指向X的地址值。

例子:Demo6.java

 

3.4赋值运算

1、=:Java中单个等号表示将等号右边的数值赋给左边的变量。

2、扩展性的赋值运算符

+=   -=   *=  /=

+= :  i+=5   <===>  i = i + 5;

*=:  i*=5    <===>  i = i * 5;

例子:Demo6.java

3.5 条件运算符(三目运算符)

语法:布尔表达式 ? 值1:值2;

当布尔表达式结果为true时,运算结果为值1;

当结果为false时,运算结果为值2。

值1、值2可以为任意类型数据,且可以为相等的数据类型。

练习:求两个、三个数中的最大值,及判断数的奇偶。

例子:Demo7.java

 

3.6 逻辑运算符:

逻辑与:&&

逻辑或:||

逻辑与和逻辑或的短路功能:逻辑与遇到false时,后面的表达式不再参与运算,结果为false;逻辑或遇到true时,后面的表达式不再参与运算结果为true。

例子: Demo8.java

 

JavaSE学习(二):进制转换—数据类型转换—Java运算符的更多相关文章

  1. Java 基础入门随笔(2) JavaSE版——关键字、进制转换、类型转换

    1.Java语言-关键字 关键字:被java语言赋予了特殊含义的词,特点是所有的字母都为小写. java涉及到的关键字整理: 用于定义数据类型的关键字 class interface byte sho ...

  2. JAVA学习之进制转换练习

    public static void main(String[] args) { toBin(60); toBa(60); toHex(60); } /** 十进制-->二进制 */ publi ...

  3. javascript学习3、数据类型、数据类型转换、运算符

    数据类型包括:基本数据类型和引用数据类型 基本数据类型指的是简单的数据段,引用数据类型指的是有多个值构成的对象. 当我们把变量赋值给一个变量时,解析器首先要确认的就是这个值是基本类型值还是引用类型值 ...

  4. 1030 大数进制转换(51Nod + JAVA)

    题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1030 题目: 代码实现如下: import java.mat ...

  5. Golang的进制转换实战案例

    Golang的进制转换实战案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常用进制概述 1>.进制概述 进制也就是进位制,是人们规定的一种进位方法.举个例子:二进制就 ...

  6. java se系列(二) 关键字、注释、常量、进制转换、变量、数据类型转换、运算符

    1 关键字 1.1 关键字的概述 Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名.方法名.类名.包名. 1.2 常见的关键字 备注 ...

  7. 大数据学习--day02(标识符、变量、数据类型、类型转换、进制转换、原码反码补码)

    标识符.变量.数据类型.类型转换.进制转换.原码反码补码 标识符: java50个关键字不能做标识符,以数字开头不能做标识符(这个老是忘记写一个类名的时候) 变量: 变量分为成员变量和局部变量,注意作 ...

  8. [c/c++] programming之路(7)、数据类型转换、偷钱小程序、进制转换

    一.数据类型转换 #include<stdio.h> //某些场合,必须进行数据类型转换,以匹配调用 void main0(){ printf();//printf不管你是什么类型,解析失 ...

  9. 2 Java基础语法(keyword,标识符,凝视,常量,进制转换,变量,数据类型,数据类型转换)

    1:keyword(掌握) (1)被Java语言赋予特定含义的单词 (2)特点: 所有小写. (3)注意事项: A:goto和const作为保留字存在. B:类似于Notepad++这种高级记事本会对 ...

随机推荐

  1. I2C 上拉电阻选择计算公式

    I2C接口上拉电阻的选择 - I2C接口上拉电阻的选择 1.I2C接口的输出端是漏极开路或集电极开路,所以必须在接口外接上拉. 2.上拉电阻的范围很宽,但也需要跟据功耗.信号上升时间等具体确定. 和速 ...

  2. Linux c codeblock的使用(三):使用函数库

    (一)概念 什么是函数库呢?一下子说概念大家可能不太熟悉,但是这实际上是大家在windows系统上经常见到的东西.没错,就是那些后缀为DLL的文件. linux上实际也有自己的函数库文件,文件类型为. ...

  3. [图形学]VS2017中OpenGL的下载及安装中的异常

    1.放dll文件:C:\Windows\SysWOW64 或C:\Windows\windows32 2.lib和h:C:\Program Files (x86)\Microsoft Visual S ...

  4. 分享我编写的powershell脚本:ssh-copy-id.ps1

      问:通过[字符串界面].如何从win,通过ssh,连接到sshd?答:在任意版本win中,通过cmd.exe,powershell.exe中调用ssh.exe,连接sshd.   问:通过[pow ...

  5. .NET MVC+angular导入导出

    cshtml: <form class="form-horizontal" id="form1" role="form" ng-sub ...

  6. 最全面的Redis命令行查阅手册(收藏查看)

    Redis是用C语言实现的,一般来说C语言实现的程序“距离”操作系统更近,执行速度相对会更快. Redis使用了单线程架构,预防了多线程可能产生的竞争问题. 作者对于Redis源代码可以说是精打细磨, ...

  7. 了解box-sizing 盒子模型

    最近看到别人代码有用到box-sizing属性,自己没用过,记录一下 box-sizing:border-box 指定宽度和高度(最小/最大属性)确定元素边框box 理解:假设宽高为100px,设置了 ...

  8. Python机器学习(基础篇---监督学习(支持向量机))

    支持向量机(分类) 支持向量机分类器根据训练样本的分布,搜索所有可能的线性分类器中最佳的那个.我们会发现决定其直线位置的样本并不是所有训练数据,而是其中的两个空间间隔最小的两个不同类别的数据点,而我们 ...

  9. SqlServer 游标逐行更新数据,根据上一行的数据来更新当前行

    工作中用到的记录一下,游标的详细定义及说明请百度 --游标格式化数据 DECLARE cursor_jxsmb CURSOR FOR --定义一个游标 SELECT F0 FROM dbo.JXSMB ...

  10. 【原创】ACR傻瓜式破解IC芯片卡

    1.简介: 智能卡(英语:Smart card 或IC Card),又称智慧卡.聪明卡.集成电路卡及IC卡,是指粘贴或嵌有集成电路芯片的一种便携式卡片塑料.卡片包含了微处理器.I/O接口及存储器,提供 ...