首页 > 编程语言 >java中的类型转换

java中的类型转换

时间:2024-10-19 09:20:43浏览次数:1  
标签:类型转换 java 运算 00000000 补码 b1 byte

一、自动类型转换

1.在java中,变量参与运算的时候会自动提升数据类型

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

二、强制类型转换

1.语句格式:

目标数据类型 变量名=(目标数据类型)要转型的变量值或者表达式

public class DataTypeDemo2 {
    public static void main(String[] args) {
        //哪句是编译失败的呢?为什么呢?
//        byte b1=3,b2=4,b; //不推荐这么定义
        //工作的时候,推荐一个变量定义占用一行
        byte b1=3;
        byte b2=4;
        byte b;
//        b=b1+b2; // 如果是变量参与运算,会先自动类型转换,做完运算后,再判断是否可以进行赋值
        //强制类型转换
        b=(byte)(b1+b2);
        System.out.println(b);
//        b=3+4; // 如果是常量参与运算,会先进行运算,运算后,会判断结果是否在范围内,如果在直接赋值


    }
}

2.注意事项:

使用可能会有风险,精度丢失

public class DataTypeDemo3 {
    public static void main(String[] args) {
        byte b = (byte)130; // 无法直接赋值,原因是130超过了byte的最大范围,需要强制类型转换
        System.out.println(b); // -126


    }
}

/*
    计算机中的数据都是采用补码进行运算的
    130的补码:00000000 00000000 00000000 10000010

    做强制类型转换:
    补码:  (00000000 00000000 00000000) 10000010
    补码:   10000010
    已知补码求原码:
            符号位      数值位
    补码:    1        0000010
    反码:    1        0000001
    原码:    1        1111110
    -----------------------------
           64 + 32 + 16 + 8 + 4 + 2 = 126
           因为符号位是1,所以最终的结果是-126
 */

标签:类型转换,java,运算,00000000,补码,b1,byte
From: https://www.cnblogs.com/ndmtzwdx/p/18475493

相关文章

  • 【Java系列】基于Javaweb的在线餐饮管理系统设计与实现(源码+文档+部署讲解等)
    文章目录1.前言2.详细视频演示3.程序运行示例图4.文档参考5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue5.3程序操作流程6.选题推荐7.原创毕设案例8.系统测试8.1系统测试的目的8.2系统功能测试9.代码参考10.为什么选择我?11.获取源码1.前言......
  • python+uniapp微信小程序线上点餐管理信息系统java+nodejs-毕业设计
    前端开发框架:vue.js数据库mysql版本不限后端语言框架支持:1java(SSM/springboot)-idea/eclipse2.Nodejs+Vue.js-vscode3.python(flask/django)--pycharm/vscode4.php(thinkphp/laravel)-hbuilderx数据库工具:Navicat/SQLyog等都可以 随着科技的不断发展,移动互联网......
  • python+vue基于django/flask的在线投票管理系统java+nodejs-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • python+vue基于django/flask的美食分享推荐系统Java+nodejs-计算机毕业设计
    目录技术栈和环境说明具体实现截图预期达到的目标系统设计详细视频演示技术路线解决的思路性能/安全/负载方面可行性分析论证python-flask核心代码部分展示python-django核心代码部分展示研究方法感恩大学老师和同学源码获取技术栈和环境说明本系统以Python开发语言......
  • Java 初学 day14
    day141、List集合练习1、获取10个1-20之间的随机数,要求不能重复publicclassListTest1{publicstaticvoidmain(String[]args){Randomrandom=newRandom();//intnumber=random.nextInt(20)+1;//System.out.println(number);......
  • java中的常量和变量
    一、java中的常量1.定义:在java程序运行过程中其值不能发生改变的量2.分类:1、字面值常量整数常量表示所有的整数,包括负数10-8小数常量表示所有的小数1.23-3.14布尔常量truefalse空常量null字符......
  • Java最全面试题->Java基础面试题->JavaWeb面试题->Cookie/Session面试题
    Cookie/Session下边是我自己整理的面试题,基本已经很全面了,想要的可以私信我,我会不定期去更新思维导图哪里不会点哪里什么是Cookie?HTTPCookie(也叫WebCookie或浏览器Cookie)是服务器发送到用户浏览器并保存在本地的一小块数据,它会在浏览器下次向同一服务器再发起请求......
  • Nodejs java python php基于微信平台的二次元手办商场小程序
    目录项目介绍具体实现截图设计方法和思路技术介绍小程序框架以及目录结构介绍java类核心代码部分展示其他小程序项目推荐系统测试详细视频演示源码获取项目介绍小程序选用微信开者与Nodejsjavapythonphp语言,应用uniapp框架,MySQL为后台数据库。系统主要包括用户......
  • java Nodejs python php云台音乐网站系统 微信小程序
    目录项目介绍具体实现截图技术介绍HBuilderX协同过滤算法java类核心代码部分展示其他springboot项目推荐详细视频演示源码获取项目介绍云台音乐微信小程序的设计基于现有的智能手机上运行,可以实现服务端;首页、个人中心、用户管理、音乐分类管理、歌曲信息管理、音......
  • 【2024最新版】Win10下 Java环境变量配置----适合入门小白
    首先,你应该已经安装了Java的JDK了(如果没有安装JDK,请跳转到此网址:http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html)笔者安装的是jdk-8u91-windows-x64接下来主要讲怎么配置Java的环境变量,也是为了以后哪天自己忘记了做个备份(注:win10的......