首页 / 知识
解决所有Java字节都签名的最佳方法是什么?
2023-04-12 05:05:00

What is the best way to work around the fact that ALL Java bytes are signed?在Java中,没有无符号字节之类的东西。 使用一些低级代码,有时您需要使用无符号值大于128的字节,由于MSB被用作符号,因此Java会将其解释为负数。 解决此问题的好方法是什么? (说不使用Java不是一种选择) 如果您这样做,实际上可以摆脱if语句和加法。
这样,Java不会将字节解释为负数,也不会翻转整数上的符号位。 从数组中读取任何单个值时,请将其复制到short或int之类的值中,然后将负数手动转换为正值。
写入数组时,可以执行类似的转换。 使用int通常比使用short更好,因为java总是在内部使用32位值(即使是字节,除非在数组中也是如此),因此使用int可以避免不必要的转换为字节码中的short值。 我知道这是一个很晚的响应,但是当我尝试做完全相同的事情时遇到了这个线程。问题只是试图确定Java字节是否大于127。 简单的解决方案是:
如果实际问题是> 128,则只需在该if语句中添加另一个条件即可解决问题。 进行位操作/无符号字节的最佳方法是使用整数。即使它们是有符号的,它们也有许多备用位(总共32个)被视为无符号字节。同样,所有数学运算符都会将较小的固定精度数字转换为int。例:
因此,最好只是坚持使用整数并将其屏蔽以获取您感兴趣的位。示例:
这是有关Java基本类型的更多信息http://mindprod.com/jgloss/primitive.html 最后一点,在Java中有一个无符号的固定精度数字。那就是char原语。 最好的选择是使用整数而不是字节。它有空间允许大于128的数字,而不必创建特殊对象来替换字节的开销。 比我聪明的人(所有人)也建议这样做
我想你可以用一个短裤来存储它们。效率不是很高,但是除了我所看到的一些艰巨的努力,它实际上是唯一的选择。 |
最新内容
相关内容
python终端输出乱码怎么解决?
python终端输出乱码怎么解决?,代码,系统,一致,培训,地方,工作,终端,文件,乱码,声明,在命令行终端上工作时,经常会碰到一个头疼的问题就是中文python中获取路径的三种方法
python中获取路径的三种方法,工作,代码,情况,培训,下来,路径,文件,也就是,桌面,目录,python中获取路径总结下来分为三种情况:1、获取工作目录python中什么是类方法
python中什么是类方法,培训,方法,实例,静态,定义,参数,函数,内部,变量,属性,python中的类方法,指的是在类中定义的函数,函数在类的内部称为方法python怎么调用方法
python怎么调用方法,系统,培训,方法,参数,法名,定义,列表,实例,以上,函数,python调用的方法类的方法的定义1、定义一个类deffun_name(self,..python对象与方法的区别是什么
python对象与方法的区别是什么,地址,数据,培训,对象,函数,类型,字符串,方法,表示,身份,python使用对象模型来存储数据,也就是说构造任何类型的python调用方法必须实例化么
python调用方法必须实例化么,代码,培训,方法,静态,工厂,参数,程序,对象,实例,定义,python类中的实例方法和静态方法,在调用时,是有区别的。静态python有map方法吗
python有map方法吗,培训,位置,数据,函数,列表,序列,参数,元素,方法,使用方法,python中的map:map()会根据提供的函数对指定序列做映射。第一个python报错syntaxerror怎么解决
python报错syntaxerror怎么解决,异常,位置,代码,培训,检测,错误,示例,语法错误,表示,语言,python中的SyntaxError错误是常见Python语言异常错python有哪些方法可以解压文件?
python有哪些方法可以解压文件?,工具,系统,工作,培训,文件,文件夹,方法,窗体,不同于,以下内容,在Python学习和日常使用中,很容易造成文件过大。python函数与方法的区别是什么
python函数与方法的区别是什么,培训,函数,方法,区别,对象,以上,方式,更多,内容,python中函数和方法的区别1、函数要手动传self,方法不用传selpython如何调用类中的方法
python如何调用类中的方法,培训,入口,名字,文件,方法,参数,路径,函数,文件夹,下面,python调用类中的方法:调用同一个类中的方法首先类中的方法python字符串切片的方法是什么
python字符串切片的方法是什么,培训,字符串,索引,切片,开头,方括号,时候,方法,冒号,首尾,获取Python字符串中的某字符可以使用索引:lang=pytho