怎样做网站的背景图片,安卓原生开发,小程序制作pdf,百科网站模板示例代码#xff1a;int a 255;byte b (byte) a;int c b 0xff; // Here be dragonsSystem.out.println(a);System.out.println(b);System.out.println(c);所以我们从一个整数值255开始#xff0c;将它转换成一个字节(变为-1)#xff0c;然后使用魔术公式将其转换成…示例代码int a 255;byte b (byte) a;int c b 0xff; // Here be dragonsSystem.out.println(a);System.out.println(b);System.out.println(c);所以我们从一个整数值255开始将它转换成一个字节(变为-1)然后使用魔术公式将其转换成一个int。预期输出为255-1255我想知道这个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这样的数字