java中true转换为int_在Java中将字节转换为int的最优雅的方式

示例代码:

int a = 255;

byte b = (byte) a;

int c = b & 0xff; // Here be dragons

System.out.println(a);

System.out.println(b);

System.out.println(c);

所以我们从一个整数值255开始,将它转换成一个字节(变为-1),然后使用魔术公式将其转换成一个int。预期输出为:

255

-1

255

我想知道这个0xff是最优雅的转换方式。 checkstyle例如抱怨在这个地方使用魔术数字,这不是一个好主意,忽略这个检查的值,因为在其他地方255可能真的是一个魔术数字,应该避免。而且我自己定义一个这样的东西是非常烦人的。所以我想知道是否有一个标准的方法在JRE做这个转换?或者也可能是具有最高无符号字节值的已定义常量(类似于最高有符号值的Byte.MAX_VALUE)

所以要保持问题的简短:如何将一个字节转换为int而不使用魔术数字?

好的,到目前为止,提到了以下几种可能性:

>继续使用& 0xff并忽略checkstyle中的魔术数字255。缺点:也可以在其他范围(不是位操作)中使用此号码的其他地方。优点:简单易读。

>定义我自己的常量,然后使用& SomeConsts.MAX_UNSIGNED_BYTE_VALUE。缺点:如果我需要它在不同的类,那么我必须定义我自己的常量类只是为了这个常数。优点:这里没有魔术数字。

>做一些聪明的数学,如b& ((1< Byte.SIZE)-1)。编译器输出最有可能是相同的,因为它被优化为一个常量值。缺点:很多代码,难以阅读。优点:只要1没有被定义为魔术数字(checkstyle默认忽略它),我们在这里没有魔术数字,我们不需要定义自定义常量。而当字节重新定义为16位的某一天(只是开玩笑),那么它仍然可以工作,因为Byte.SIZE将是16而不是8。

有更多的想法吗?也许一些其他聪明的比特操作比上面的更短,只使用像0和1这样的数字?

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

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

相关文章

(3.4)HarmonyOS鸿蒙滑动事件三个动作

接口名&#xff1a;TouchEventListener 滑动事件里面分为三个动作&#xff1a;按下&#xff0c;移动&#xff0c;抬起 PRIMARY_POINT_DOWN&#xff1a;按下 POINT_MOVE&#xff1a;移动 PRIMARY_POINT_UP&#xff1a;抬起 手机坐标&#xff1a; 手机左上角的点为原点。向右为…

计算机二级web题目(8.3)--简单应用题2

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1.在考生文件夹下的Web3目录中&#xff0c;存有3.htm文件&#xff0c;该文件不完…

计算机二级web题目(8.4)--综合应用题2

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1.在考生文件夹下的Web5目录中&#xff0c;存有5.htm文件&#xff0c;该文件不完…

创建存储,修改存储_安全地创建和存储密码

创建存储,修改存储几乎每次涉及用户配置文件时&#xff0c;都必须管理用户凭据&#xff0c;从而能够创建和存储用户密码。 通常应该使用哈希密码和盐分密码来准备数据库公开和通过使用Rainbow表进行哈希逆转。 但是&#xff0c;找到以明文形式存储的密码并不少见&#xff08;很…

mysql把一行保存到另一个表_MYSQL:如何复制整个行从一个表到另一个在MySQL与第二个表有一个额外的列?...

为了完善Zed的答案&#xff0c;并回答你的评论&#xff1a;INSERT INTO dues_storage SELECT d.*, CURRENT_DATE() FROM dues d WHERE id 5;见TJ Crowder的评论最安全的方法是完全指定插入和提取的列。 (对于应用程序)没有任何保证&#xff0c;这些将是您认为可能的顺序。inse…

Spring Security中的SecurityContext和SecurityContextHolder是什么?

SecurityContext和SecurityContextHolder是Spring Security的两个基本类。 SecurityContext用于存储当前经过身份验证的用户的详细信息&#xff0c;也称为原理。 因此&#xff0c;如果必须获取用户名或任何其他用户详细信息&#xff0c;则需要首先获取此SecurityContext 。 Sec…

codemirror java代码_codemirror使用(示例代码)

JS使用使用bower下载javascript bower i codemirror引入样式文件html 引入js文件html 文档结构html 初始化javascript // mode: "text/javascript", // mode: "text/css" window.onload function(){ var myCodeMirror CodeMirror.fromTextArea(document.…

(3.5)HarmonyOS鸿蒙上下左右方向滑动

需要获取按下时候的坐标和松开时候的坐标&#xff0c;并将两者进行比较。 ①MainAbilitySlice.java文件 可以根据使用情况做修改代码中判断处的限制偏差范围。 package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.Ability…

java selenium用js点击_Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?...

小编典典你可以通过以下任一过程解决它们&#xff1a;1.由于存在JavaScript或AJAX调用而无法单击元素尝试使用ActionsClass&#xff1a;WebElement element driver.findElement(By.id("navigationPageButton"));Actions actions new Actions(driver);actions.moveT…

(3.5)HarmonyOS鸿蒙多按钮点击事件

多按钮的点击事件其实与只有一个是类似的&#xff0c;只不过要在调用 onClick&#xff08;&#xff09;时进行判断&#xff0c;判断获取到的component是谁即可。 package com.example.yeman.slice;import com.example.yeman.ResourceTable; import ohos.aafwk.ability.Ability…

sql 注射_基本注射/资格赛,范围

sql 注射这是上周解决的DI / CDI基础知识的延续-在本文中&#xff0c;我将讨论基础注入&#xff0c;限定词和范围。 在上一个主题中&#xff0c;我们提供了有关DI / CDI概念的大量信息&#xff0c;我们还讨论了如何使用注释加载这些bean或类-这构成了对象的组成并创建了关于如…

计算机二级web题目(9.1)--综合选择题3

前些天发现了一个巨牛的人工智能学习电子书&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;无广告&#xff0c;忍不住分享一下给大家。&#xff08;点击跳转人工智能学习资料&#xff09; 1下列叙述中正确的是(D)。 A、栈是"先进先出"的线性表 B、队列是"…

java小程序 2048_微信小程序之游戏2048

主要用来锻炼逻辑思维能力image.png可以选模式image.png这里面主要解决的问题是&#xff1a;1.判断滑动方向//在滑动块级绑定滑动开始和滑动结束的方法很原始的方法&#xff0c;startFn时保存开始的(x,y),endFn时保存结束的(x1,y2),根据这四个参数 判断方向&#xff0c;算法在方…

现场故事:从Log4J迁移到Log4J2

通过从应用程序中学习企业APM产品&#xff0c;发现更快&#xff0c;更高效的性能监控。 参加AppDynamics APM导览&#xff01; 与许多Java应用程序一样&#xff0c;AppDynamics Java代理广泛使用日志记录。 多年来&#xff0c;我们一直使用Log4J作为日志记录框架。 虽然Log4J的…

Java面向对象(8)--继承性

多个类中存在相同属性和行为时&#xff0c;可以将这些内容抽取到单独一个类中&#xff0c;那么多个类无需再定义这些相同的属性和行为&#xff0c;只要继承那个类即可。 这里的多个类称为子类(派生类)&#xff0c;单独的这个类称为父类(基类或超类)。 语法格式&#xff1a;cla…

aimesh node重启_华硕 RT-AC86U 和 网件 R7000 组 AiMesh 成功

家里之前买了一个 R7000 主路由器&#xff0c;后来我嫌我房间里的信号有点烂( 5G 信号只能 2 格&#xff0c;网速比 2.4G 还慢)&#xff0c;所以就入手了一个华硕 RT-AC86U 作为主路由器&#xff0c;R7000 则作为 AP。在买的时候就想组 AiMesh&#xff0c;但是因为种种事情耽搁…

Java面向对象(9)--方法的重写(override/overwrite)

在子类中可以根据需要对从父类中继承来的方法进行改造&#xff0c;也称为方法的重置、覆盖。在程序执行时&#xff0c;子类的方法将覆盖父类中同名同参数列表的方法。 权限修饰符 返回值类型 方法名&#xff08;形参列表&#xff09; throws 异常类型{方法体; }①子类重写的方法…

maven ant_如何在Maven中运行Ant目标?

maven antmaven-antrun-plugin允许我们在各种maven构建阶段中运行ant目标。 我将专门为具有开发环境的开发人员解释maven-antrun-plugin的非常实际的用法。 通常&#xff0c;使用maven build&#xff0c;您会将项目捆绑到war文件或ear文件中。 您可以使用maven-antrun-plugin…

java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...

我想做标题所说的.部分解决方案例如,在Windows中,您可以使用以下代码在默认资源管理器中打开文件并突出显示它.(虽然它需要修改包含空格的文件)&#xff1a;/*** Opens the file with the System default file explorer.** param path the path*/public static void openFileLo…

win10下vscode配置c语言环境

1、C编译器下载 C编译器&#xff08;MinGW-W64 GCC&#xff09;的下载&#xff1a;点击官方下载 或者点击网盘下载提取码为karj 下载完成后解压&#xff0c;将解压后的文件夹放到合适的位置&#xff0c;点开其bin子文件夹&#xff0c;复制路径。 2、win10下环境变量配置 ①…