首页 > 其他分享 >数据类型转换与运算符

数据类型转换与运算符

时间:2023-03-04 11:12:10浏览次数:40  
标签:类型转换 数据类型 System 运算符 num 数据 赋值

一、数据类型转换

1.数据类型转换

1.1自动数据类型转换

  1. 整数类型自动数据类型转换:当长度小的数据类型,赋值给长度长的数据类型。那么只需要在高位补零。数据的值未发生变化,只有长度变化。

    image

  2. 浮点数自动数据类型转换:当长度小的数据类型,赋值给长度长的数据类型。那么只需要在高位补零。数据的值未发生变化,只有长度变化。

  3. 将整数赋值给浮点数:精度低的往精度高的赋值,可以直接转换(不需要考虑长度)

1.2强制数据类型转换 语法:a = a(b)

  1. 当整数长度长的往长度短的赋值,需要强制数据类型转换。高位丢失,如果高位无值,则对结果没有影响。

    image

    image

    image

  2. 当浮点数精度高的往浮点数精度低的赋值,需要强制数据类型转换。丢失精度,不是四舍五入!

    image

  3. 浮点数往整数赋值,丢失精度。

    image

补充

  1. 在方法当中的申明的基本数据类型,保存在栈当中
  2. 栈具有先进后出的特性
  3. 所有的基本数据类型的值在栈当中,都为唯一值

2.运算符

基本数据类型赋的是值

引用数据类型赋的是地址

2.1赋值运算符

符号:=

2.2算术运算符(数值,运算的结果也是数值)

  1. +:可以用于字符串拼接(+号两边,只要有一个字符串,结果就是字符串);如果参与的表达式两边都是数值,则是加法运算。如果想在拼接的过程当中,先进行表达式的运算,需要提高表达式的优先级。加括号。

    image

    image

    image

  2. -:

  3. *:

    image

  4. /:取整:当除数或者被除数都为整数,结果取整;除数或者被除数,有任意一个为浮点数,结果为浮点
    数。

    image

    注意:除数不可为0

    image

  5. %:取余

    image

  6. ++/--:自增/自减

    • 自增在原本变量数值的基础上+1

    • 自减在原本变量数值的基础上-1

      • 前置:先自增,后运算

        image

      • 后置:先运算,在自增

        image

        image

2.3复合赋值运算符(数值,运算的结果也是数值)

在其值基础上进行运算,后再次对原变量进行赋值

2.4关系运算符

  1. 比较的目标

    1. 比较的数值:>, <, >=, <=

    2. 比较数值,还可以比较地址,boolean: == , !=。(比较两个String是否相等需要使用方法equals)

      image

  2. 比较的结果:boolean

2.5逻辑运算符

  1. 比较的目标是布尔类型
  2. 比较的结果也是布尔类型
  3. 比较的方式
    • 与&:同为true的情况下,结果为true;有一个为false,结果为false
    • 或|:同为false的情况下,结果为false;有一个为true,结果为true
    • 非 !:真到假时假亦真
  4. 长路与短路(&&短路与,&长路与),(|| , |)
    • 只要左面得到结果,右面不再执行
    • 无论左面是否有结果,右面都需要继续执行

2.6三目运算符

语法:<结果为boolean类型的表达式> ? <表达式为true,语句1> : <表达式为false,语句2>

image

三目运算符可以嵌套

image

image

2.7位运算符(只要了解)

左位移:<< ,每位移1位 * 2
右位移:>> , 每位移1位 / 2

image

2.8类型的自动提升

  1. 字符串和其他值拼接:结果为字符串
  2. 数值运算:低位往高位提升,低精度往高精度提升

一个思考题:任意四位数,请尝试分别取出个十百千位的值

image

继续思考:换一种方式来实现

public class Test01 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner input = new Scanner(System.in);
		System.out.print("请输入一个四位数:");
		int num = input.nextInt();
		int n;
//		System.out.println(num+"的千位是:"+(num/1000));
//		System.out.println(num+"的百位是:"+(num/100%10));
//		System.out.println(num+"的十位是:"+(num/10%10));
//		System.out.println(num+"的个位是:"+(num%10));
		
		while(num>0) {
			n = num % 10;
			System.out.println(n);
			num = num/10;
			
		}
	}
}

运行结果:
请输入一个四位数:1234
4
3
2
1

3.控制台输入

image

image

image

image

需求分析

标签:类型转换,数据类型,System,运算符,num,数据,赋值
From: https://www.cnblogs.com/DFshmily/p/17177879.html

相关文章

  • C/C++ 数据结构优先级队列的实现(使用二级指针)
    #include<iostream>#include<Windows.h>#include<iomanip>//优先级队列的实现usingnamespacestd;#defineMaxSize5typedefintDataType;//队列中的元素类型......
  • java的基本语法—运算符
    运算符算术运算符:+,-,*,/,%,++,--赋值运算符:=关系运算符:>,<,>=,==,!=,instanceof逻辑运算符:&&与,||或,!非位运算符:&,|,~,>>,<<,>>>(了解!!!)条件运算符:?:扩展赋值运算符:+=,-=,*=,/=......
  • 2023年03月数据库流行度最新排名
    点击查看最新数据库流行度最新排名(每月更新)2023年03月数据库流行度最新排名TOPDB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的一个数据库被搜索的次......
  • ChIP-seq 分析:数据与Peak 基因注释(10)
    动动发财的小手,点个赞吧!1.数据今天,我们将继续回顾我们在上一次中研究的MycChIPseq。这包括用于MEL和Ch12细胞系的MycChIPseq。可在此处找到MEL细胞系中Myc......
  • java学习日记20230303-基本数据类型转换
    自动类型转换java程序在进行运算和赋值时,精度小的类型自动转化为精度大的类型,这个就是自动类型转化数据类型按照精度大小排序char-int-long-float-doublebyte-short-in......
  • 流量分析一之数据包传输过程
    封装与解封装封装报文是从上层到下层(应用层-->传输层-->网络层-->数据链路层-->物理层),解封装报文是从下层到上层。应用数据需要经过TCP/IP每一层处理后才能通过网络传......
  • 常见传输数据格式Content-Type
    在响应中,Content-Type标头告诉客户端实际返回的内容的内容类型。浏览器会在某些情况下进行MIME查找,并不一定遵循此标题的值;为了防止这种行为,可以将标题X-Content-Ty......
  • R语言Apriori关联规则、kmeans聚类、决策树挖掘研究京东商城网络购物用户行为数据可视
    全文链接:http://tecdat.cn/?p=30360最近我们被客户要求撰写关于网络购物用户行为的研究报告,包括一些图形和统计输出。随着网络的迅速发展,依托于网络的购物作为一种新型的......
  • MySQL Delete 表数据后,磁盘空间并未释放,为什么?
    有开发小哥咨询了一个问题,记录一下处理过程分享给有需要的朋友。问题如下:MySQL数据库中有几张表增删比较频繁、数据变动剧烈且数据量大,导致数据增长过快,磁盘占用多。为了节......
  • 链接mysql数据库报错:2003-cant connect to Mysql server on ‘localhost’(10038)
    今天用navicat连mysql时候突然报错了 我百度了一下,知道了是mysql服务没开,但是我打开了服务,发现服务里面没有mysql,于是就去cmd以管理员身份打开命令提示符,切换到......