Java基本数据(short和int的转换问题)

2023-11-02

面试遇到short和int的转换问题,当时有些疑惑,在这里总结一下!

第一种情况

public static void main(String[] args) {
        short a = 1;
        a += 1;                 //不用强转
        a = (short) (a + 1);   //需要强转, 
    }

       可能大家会比较迷惑,为什么两种操作都是+1,但一个需要强转一个不需要?

a += 1 :因为在Java规范中,复合赋值是自带了隐式的强制类型转换的。
a = a+1 : 因为先执行的是a+1,会先将a强转为int,之后将int赋值给short就会出现编译错误

第二种情况

public static void main(String[] args) {
        int a = 1;
        int b = 2;
        short c = (short) (a+b);  //int直接赋值给short时需要强转操作
    }

第三种情况

public static void main(String[] args) {
        short a = 1;
        short b = 2;
        short c = (short) (a + b);   //两个short做运算后再进行赋值的话,也需要强转;
    }

因为在做运算操作时,编译器会自动将比int精度小的类型转换为int进行操作,所以运算之后是int类型,需要强转;

第四种情况

public static void main(String[] args) {
        short a = 1;
        short b = 2;
        int c = a + b;    //两个short做运算操作会转成int类型来操作,所以这里的short不需要强转;
    }

第五种情况

public static void main(String[] args) {
        short a3 = 1;
        int c3 = a3;   //short可以直接赋值给int类型,不用强转
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java基本数据(short和int的转换问题) 的相关文章

  • 从 EditText 获取数字

    我知道他已经被问过几次了 但我一直在尝试我发现的一切 但没有运气 我仍然有一个错误 这是我的代码 xml
  • 有符号到无符号整数的类型双关可以通过消除 >= 比较的需要来加快边界检查速度吗?

    假设我的程序中有一个对性能非常关键的循环 我需要检查一个点是否在矩形内 但我知道在编译时下限始终为 0 如下所示 x gt 0 y gt 0 x lt width y lt height 我可以通过将 x 和 y 类型双关为无符号整数来消除
  • 在 C++ 中将字符串转换为短字符串

    因此 我四处寻找如何将字符串转换为短整型 并发现了很多有关如何将字符串转换为整数的信息 我会留下一个问题作为对这些线程的评论 但我没有足够的声誉 所以 我想做的是将字符串转换为短字符串 因为数字永远不应该超过三或低于零 并且短字符串可以节省
  • 有没有一种可移植的方法来定义 INT_MAX?

    我在 usr include limits h中找到了以下定义 define INT MIN INT MAX 1 define INT MAX 2147483647 另外 似乎该头文件中的所有 XXX MAX 都是从数字常量显式定义的 我想
  • 我可以更新 INT 值 + 1 并返回新值吗?

    MySQL PHP 是否可以在一次查询中增加 INT 值并返回新值 sql mysql query UPDATE table SET number number 1 WHERE id uniqid updated number 或者我需要发
  • Java 中的无符号短整型

    我怎样才能声明unsigned shortJava 中的值 你不能 真的 Java 没有任何无符号数据类型 除了char 诚然你could use char 这是一个 16 位无符号类型 但在我看来这将是可怕的 因为char显然适用于文本
  • 返回数字的最后 5 位

    如何只显示号码的最后5位 输入示例 123456789 将返回 56789 假设需要转换的数字是整数 然后您可以使用模块化数学 您可以将数字转换为以 100 000 为基数的模块 这意味着仅保留最后 5 位数字 转换可以通过除法余数的运算符
  • __format__ 方法应该如何用于 int?

    我看到有一个 format 方法但有帮助 int format 不提供任何帮助 我也知道你不应该打电话给 method 直接地 什么时候调用这个方法 它的论据是什么 它用于 Py3k 的新字符串格式化方案 您可以在这里找到更多信息 http
  • 为什么下面的结果是零? [复制]

    这个问题在这里已经有答案了 下面的每个 print 语句都会产生 0 0 var c Double 0 0 let a Int 1 let b Int 5 print a b Double a b 100 c Double a b 100
  • 目标 c:检查是否是整数/整数/数字

    在 Objective C 中 我如何检查字符串 NSNumber 是整数还是 int 如果您想确定是否NSString是否有数值 尝试使用NSNumberFormatter BOOL stringIsNumeric NSString st
  • Java中int是如何实现的?

    根据文档Integer class Integer 类将基本类型 int 的值包装在对象中 Integer 类型的对象包含一个类型为 int 的字段 和文档int 默认情况下 int 数据类型是 32 位有符号二进制补码整数 其最小值为 2
  • C++:计算游戏中的总帧数

    不是一个很好的标题 但我不知道该起什么名字 无论如何 我正在计算游戏中的总帧数 这样我就可以计算平均 FPS long int 万一游戏持续很长时间 我该怎么做才能确保我的long int不会增加超过其限制吗 如果超过极限会发生什么 Tha
  • 比较 Double 和 Int 的最佳方式是什么?

    以下 C 代码不起作用 int iValue 0 double dValue 0 0 bool isEqual iValue Equals dValue 那么问题来了 比较 Double 和 Int 的最佳方法是什么 您确实不能以天真的方式
  • Javascript 字符串到 int 的转换

    我在页面中嵌入了以下 JS var round Math round var id this attr id var len id length var indexPos len 1 index of the number so that
  • 将位串 numpy 数组转换为以 2 为基数的整数的最快方法

    我有一个由位串组成的 numpy 数组 我打算将位串转换为以 2 为基数的整数 以便执行一些异或按位运算 我可以在 python 中将字符串转换为以 2 为基数的整数 int 000011000 2 我想知道在 numpy 中是否有更快更好
  • 尝试在 getline 中使用 int

    cout lt lt How many questions are there going to be on this exam lt lt endl cout lt lt gt gt getline cin totalquestions
  • 如何从 3 位整数中提取单个数字? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这不是家庭作业问题 我只是好奇 如果我有一个计算 3 位数字的程序 比如 123 我怎样才能得到 1 我试图在最后打印一条消息 上面写着
  • mysql 中 int(11) 列的大小是多少(以字节为单位)?

    柱子的尺寸是多少int 11 在mysql中以字节为单位 该列中可以存储的最大值 An INT无论指定什么长度 都将始终为 4 个字节 TINYINT 1 字节 8 位 SMALLINT 2 字节 16 位 MEDIUMINT 3 字节 2
  • 为什么无法将 INT 保存到 SharedPreferences 中?

    我有一个奇怪的问题 我以前从未有过 当我尝试将 int 值保存到我的 SharedPreference 中 然后在其他 Activity 中恢复时 即使我保存其他值 例如 1 值也始终为 0 private String Number pr
  • 运算符“==”不能应用于“int”和“string”类型的操作数

    我正在编写一个程序 我想到了一个数字 然后计算机猜测了它 我一边尝试一边测试它 但我不断收到不应该出现的错误 错误是主题标题 我使用 Int Parse 来转换我的字符串 但我不知道为什么会收到错误 我知道它说 不能与整数一起使用 但我在网

随机推荐

  • Python实现发送邮件

    SMTP模块发送普通邮件 import smtplib from email mime text import MIMEText from email header import Header 发送方邮箱 msg from 授权码 pass
  • 实习周记1:跨vlan通信

    跨vlan通信 1 拓扑图 2 要求 不同vlan的两台pc通过二层交换机实现二层互通 3 命令 H3C GigabitEthernet2 0 1 port link type hybrid 把端口模式改为hydrid H3C Gigabi
  • Sybase服务无法启动

    刚刚改完数据库的最大连接数 重启服务时 却发现服务无法启动 找了大半天的原因 终于找到了 可惜不会弄 只好有网上搜索一下 发现这种问题还比较常见 服务起不来 在应用程序事件查看器中发现有如下错误 300122 The value of th
  • 工程师的基本素质

    昨天开会 印象最为深刻的是领导的这么一句话 工程师的基本素质 专注 专心 责任 放心 真的 我没有真正意识到并做到这些 所以对于人的准则的教育是必须的 要让人认识到 职责所在 用心做事 愧对自己 洗心革面矣
  • 【调制BFSK】二进制频移键控FSK的数字调制(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 相移键控 PS K 是利用载波相位直接表示
  • python给图片添加水印图片_python 给图片添加数字水印示例

    实例简介 实例截图 核心代码 coding utf 8 Spyder Editor This is a temporary script file from PIL import Image import numpy as np count
  • pycuda学习笔记(二)

    1 pycuda driver LogicError cuDeviceGet failed initialization error报错怎么办 Traceback most recent call last File usr lib pyt
  • 0-1背包问题:动态规划的经典应用

    文章目录 引言 背包问题简介 0 1背包问题定义 0 1背包问题的限制条件 动态规划解决思路 状态定义 状态转移方程 背包问题的Java实现 示例与分析 总结 引言 背包问题是在给定一组物品和一个背包容量的情况下 如何选择物品放入背包 以使
  • 人工智能里有至简的优雅吗?

    我很喜欢这首古诗 静夜思 唐 李白 床前明月光 疑是地上霜 举头望明月 低头思故乡 二十个简单汉字 勾画出生动的画面 并在无数人心里掀起波澜 物理学里 爱因斯坦用5个符号 简单到不能再简单 揭示了我们的世界的规律 目光转回我的本行 我在模式
  • 一文搞定全进程间通讯(IPC)八大方式-管道、命名管道、信号、信号量、消息队列、共享内存+内存映射、套接字

    目录 进程间通讯 IPC UNIX IPC 管道 Pipe 命名管道 FIFO 信号 Signal System V IPC 信号量 Semaphore 消息列队 Message Queue 共享内存 Shared Memory IPC 额
  • linux 中增加路由(route)命令详解

    linux route 命令 route n显示现在所有路由 root Ubuntu route 结果是自上而下 就是说 哪条在前面 哪条就有优先 前面都没有 就用最后一条default 添加一条路由 发往192 168 62这个网段的全部
  • 代码走查该走查什么

    代码走查在很多公司都是一个必要的过程 但是很多时候却时候一个形同虚设的过程 通常检查的同事只要保证你的代码能够编译通过 不出现问题就pass了 到底代码走查有没有一定的规范性呢 如果公司是严格按照开发流程来的话 那么代码走查可能也会是下图中
  • Java文档注释用法+JavaDoc的使用详解

    Java文档注释 JavaDoc的使用详解 简介 文档注释负责描述类 接口 方法 构造器 成员属性 可以被JDK提供的工具 javadoc 所解析 自动生成一套以网页文件形式体现该程序说明文档的注释 注意 文档注释必须写在类 接口 方法 构
  • 关于长连接的使用

    本次项目我尝试了使用长连接 先说一下长连接的作用吧 以前我们从数据库获取数据是只有我们前端触发某一事件去发请求 后端才会返回数据 也就是说必须有人为操作才能完成这一过程 但是对于websocket长连接来说 实现了前后端牵手 使得发送请求与
  • 链表的基本操作(增删改查)

    链表的基本操作 增删改查 前提 节点的类型 typedef struct Node int id struct Node next SNode 目录 1链表的创建 2 链表的插入 3 链表的删除 4 改 查 5 链表的排序 6 链表的翻转
  • 2018.11.06 学习笔记 // 前端JS // ES6新特性-Promise

    Promise 承诺 许诺 作用 解决异步回调问题 传统方式 大部分使用回调函数 事件 ajax url 获取token ajax url gt 获取用户信息 ajax url gt 获取用户相关新闻 语法 let a 10 let pro
  • js时间排序注意

    字符串需要格式化才可以使用 sort 进行排序 9 11 要转化成 09 11
  • C++成神之路

    目录 一 认识C 1 1 关于 C 1 2 C 的前世今生 1 2 1 C
  • 【华为OD机试】VLAN资源池【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 VLAN是一种对局域网设备进行逻辑划分的技术 为了标识不同的VLAN 引入VLAN ID 1 4094之间的整数 的概念 定义一个VLAN ID的资源池 下称VLAN
  • Java基本数据(short和int的转换问题)

    面试遇到short和int的转换问题 当时有些疑惑 在这里总结一下 第一种情况 public static void main String args short a 1 a 1 不用强转 a short a 1 需要强转 可能大家会比较迷