Java的0xFFFF在赋值、比较时引起的困惑

news2024/11/17 21:22:19

Java中的0xFFFF是整型,在赋值、比较的时候容易引起混淆,涉及到符号位、数值大小,赋值给什么类型的变量。我今天在编码的时候就遇到了一些困惑。用代码样例的形式记录下来,加深理解:

package com.thb;

public class Test3 {

	public static void main(String[] args) {
		
		/*
		 * 编译器认为0xFFFF作为正数,将这个正数赋值给short类型的变量,超过了
		 * short类型最大正数表示的范围。
		 * 1)加上(short)类型强制转化,这个其实是改变了原数数值的大小(数值的大小变为1),
		 * 也改变了符号位了(由正数变为负数了),即s变量保存的值是-1 (计算机用2的补码保存)
		 */
		short s = (short)0xFFFF;
		// 打印结果出来是负数(-1)
		System.out.println(s);
		// 结果为true,因为0xFFFF强制类型转换后变为负数了
		System.out.println(s == (short)0xFFFF);
		// 结果为false,因为s存放的是负数,而0xFFFF是正数
		System.out.println(s == 0xFFFF); 
		// s存放的是负数,转换为int型的十六进制数,s的前面补两个字节的符号位,
		// 符号位是1,所以前面补的两个字节是0xFFFF
		System.out.println(Integer.toHexString(s).toUpperCase());
		// 0xFFFF是int型正数,在int的正数表示范围内,所以打印出来数值大小和符号位都没有改变
		System.out.println(Integer.toHexString(0xFFFF).toUpperCase());
		System.out.println("---------------------------");
	
		// 再举另外一个例子,将0xFFFF赋值给int型的变量,因为0xFFFF在int型最大正数
		// 表示的范围内,所以原数值大小和符号位都没有改变
		int ss = 0xFFFF; 
		System.out.println(ss);
		System.out.println(ss == 0xFFFF);  // 结果为true
		// ss是正数,前面两个字节的符号位都是0
		System.out.println(Integer.toHexString(ss).toUpperCase());		
	}
}

运行输出:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/791923.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mysql null 值查询不出来问题

最新遇到mysql null 值查询的问题,当查询这个字段有的为null 有的不为null 该字段查询条件查询为null值得将不显示。 举例 新建表 test_user name和phone得值默认值为null 我们添加一些数据 查询下name 不是张三得数据 select * from test_user where name !张…

将Spring Session存储到Redis中实现持久化

文章目录 Session持久化1. 添加依赖2. 配置redis连接信息3. 存储和读取session从Redis Session持久化 1. 添加依赖 在项目中添加session依赖和redis依赖&#xff0c;如下所示&#xff1a; <dependency><groupId>org.springframework.boot</groupId><art…

答粉丝问)【问题记录解决】如何重新训练已经经过p-tuning微调的模型;自然语言处理平台dialogflow 智能对话式问答应用程序 相关问题

如果有人以你不喜欢的方式对待你,那一定是你允许的,否则他只能得逞一次。——张德芬 🎯作者主页: 追光者♂🔥 🌸个人简介: 💖[1] 计算机专业硕士研究生💖 🌟[2] 2022年度博客之星人工智能领域TOP4🌟 🏅[3] 阿里云社区特邀专家博主🏅 �…

字符串 (2)--- 前缀函数与 KMP 算法

/* https://www.luogu.com.cn/problem/UVA455 最小周期&#xff1a; n - pi[n -1] */ #include <iostream> #include <string> #include <vector> using namespace std; vector<int> prefix_fun(string s) { int len s.length(); /…

曲线拟合(MATLAB拟合工具箱)位置前馈量计算(压力闭环控制应用)

利用PLC进行压力闭环控制的项目背景介绍请查看下面文章链接,这里不再赘述。 信捷PLC压力闭环控制应用(C语言完整PD、PID源代码)_RXXW_Dor的博客-CSDN博客闭环控制的系列文章,可以查看PID专栏的的系列文章,链接如下:张力控制之速度闭环(速度前馈量计算)_RXXW_Dor的博客-CSD…

7.语 句

7.1 表达式和语句 ●表达式: 表达式是可以被求值的代码&#xff0c;JavaScript 引擎会将其计算出一个结果。 ●语句: 语句是一段可以执行的代码。 比如: prompt() 可以弹出一个输入框&#xff0c;还有if语句、for循环语句等等 区别: 1.表达式&#xff1a;因为表达式可被求值&…

八、Kafka时间轮与常见问题

Kafka与时间轮 Kafka中存在大量的延时操作。 1、发送消息-超时重试机制 2、ACKS 用于指定分区中必须要有多少副本收到这条消息&#xff0c;生产者才认为写入成功&#xff08;延时 等&#xff09; Kafka并没有使用JDK自带的Timer或者DelayQueue来实现延迟的功能&#xff0c;而…

Leetcode-每日一题【剑指 Offer 03. 数组中重复的数字】

题目 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0&#xff5e;n-1 的范围内。数组中某些数字是重复的&#xff0c;但不知道有几个数字重复了&#xff0c;也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示例 1&#xff1a; 解题思…

uni-app:模态框的实现(弹窗实现)

效果图 代码 标签 <template><view><!-- 按钮用于触发模态框的显示 --><button click"showModal true">显示模态框</button><!-- 模态框组件 --><view class"modal" v-if"showModal"><view cla…

安科瑞能源物联网以能源供应、能源管理、设备管理、能耗分析的能源流向为主线-安科瑞黄安南

摘要&#xff1a;随着科学技术的发展&#xff0c;我国的物联网技术有了很大进展。为了提升电力抄表服务的稳定性&#xff0c;保障电力抄表数据的可靠性&#xff0c;本文提出并实现了基于物联网的智能电力抄表服务平台&#xff0c;结合云计算、大数据等技术&#xff0c;提供电力…

测试老鸟经验,性能测试重点17个疑难解答,一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、如何理解性能测…

三层交换基础实验

要求: 1.IP地址基于192.168.1.0/24划分 2.使用OSPF 3.使用DHCP 4.全网可达 1.配置二层交换 SW 3 <Huawei>system-view [Huawei]sysname SW3 [SW3]interface GigabitEthernet 0/0/2 [SW3-GigabitEthernet0/0/2]port link-type access [SW3-GigabitEthernet0/0/2]por…

Spring5学习笔记 — IOC

✅作者简介&#xff1a;大家好&#xff0c;我是Cisyam&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Cisyam-Shark的博客 &#x1f49e;当前专栏&#xff1a; Spring专栏 ✨特色专栏&a…

XCP详解「3.1·ASAP2新建A2L文件」

返回 XCP详解「总目录」 ASAP2中新建A2L文件 通过ASAP2生成需要A2L文件更常用些 新建Database ASAP2界面打开如下 设置标定信号数量最大值 导入elf文件&#xff0c;elf路径建议直接索引编译生成的Debug下的&#xff0c;防止编译后忘记更新 加载信号 查找需要监控或者修改的变…

SDUT 2023 summer team contest(for 22) - 5

K - City 题意&#xff1a;n城市之间连接无方向的道路&#xff0c;每个道路都有能量&#xff0c;敌人发动攻击&#xff0c;来摧毁这些道路&#xff0c;如果敌人发动x的攻击&#xff0c;则所有能力小于等于x的道路都将被摧毁&#xff0c;问有有多少对城市可以到达对方 思路&am…

JAVA面试总结-Redis篇章(六)——数据过期策略

Java面试总结-Redis篇章&#xff08;六&#xff09;——数据过期策略 Redis数据删除策略——惰性删除Redis数据删除策略——定期删除 Redis数据删除策略——惰性删除 Redis数据删除策略——定期删除

三、函数-3.数值函数

一、常见函数 二、示例 -- 向上取整 2 select ceil(1.5); select ceil(1.1);-- 向下取整 1 select floor(1.2); select floor(1.9);-- 返回x/y的模&#xff08;取余&#xff09; select mod(3, 4); /* 3 */ select mod(7, 4); /* 3 */ select mod(5, 4); /* 1…

NestJS 的 提供者 学习

提供者的基本概念 在 NestJs 中有一个提供者的概念&#xff0c;提供者可以是服务、缓存、工厂、数据库连接等。 提供者的主要思想就是它可以作为依赖注入项注入到需要使用的地方&#xff0c;这样我们就可以根据业务需求和自己的想法来组建业务功能组件从而让开发的灵活性大大…

【Winform学习笔记(四)】ComboBox获取电脑串口信息

ComboBox获取电脑串口信息 前言正文1、实现方法2、具体代码3、实现效果 前言 在本文中主要介绍 如何基于 Winform 框架实现 ComboBox 下拉框控件获取电脑串口信息。 正文 1、实现方法 在窗体添加一个 ComboBox 下拉框控件&#xff1b;通过 IO.Ports.SerialPort 获取串口信息…

【前端实习评审】对小说详情模块更新的后端接口压力流程进行了人群优化

大家好&#xff0c;本篇文章分享一下【校招VIP】免费商业项目“推推”第一期书籍详情模块 前端同学的开发文档周最佳作品。该同学来自安徽科技学院土木工程专业。本项目亮点难点&#xff1a; 1.热门书籍在更新点的访问压力&#xff1b; 2.书籍更新通知的及时性和有效性&#xf…