我有tyo字节变量
byte a = 3;
byte b = 4;
如果我将它们求和,则求和的值为整数。
byte z = a+b //error, left side is byte, right side is integer
为什么a + b是int?
因为Java语言规范这么说
对操作数(第5.6.2节)执行二进制数值提升。
请注意,二进制数值升级执行值集转换(第5.1.13节),并且可能执行拆箱转换(第5.1.8节)。
数字操作数上加法表达式的类型是其操作数的提升类型。
并且,关于数字促销,
扩展原语转换(第5.1.2节)适用于转换以下规则指定的一个或两个操作数:
- […]
- 否则,两个操作数都将转换为type
int
。
因此,byte
价值被提升为int
价值并相加。表达式的结果是提升的类型,因此是int
。
您可以简单地转换结果
byte z = (byte) (b + a);
但请注意上溢/下溢。
我有 tyo 字节变量 如果我对它们求和,sum的值是整数。 为什么 b 是整数?
问题内容: 我正在编写一个OutputStream,只是在OutputStream接口中注意到了这一点, 该调用将一个字节写入流中,但是为什么要使用整数作为参数呢? 问题答案: 实际上,最近我一直在处理字节,它们可能很烦人。它们在丝毫挑衅的情况下会向上转换为整数,并且没有指定将数字转换为字节的功能- 例如,8l将为您提供一个长值8,但对于字节,您必须说(byte)8 最重要的是,除非您使用数组,否
问题内容: 我正在尝试获取python 3.4中字节字符串的第一个字符,但是当我对其进行索引时,我得到了: 正如我期望的那样,这对我来说似乎并不直观。 我发现我可以得到我期望的价值,但是对我来说,这就像是一个hack。 有人可以解释为什么会这样吗? 问题答案: 该类型是Binary Sequence类型 ,并且明确记录为包含0到255范围内的整数序列。 从文档中: 字节对象是单个字节的不可变序列。
我已经彻底研究了所有的问题,但没有一个直接适用于我的问题。我正在循环访问用户ID数组并匹配它们以从我的firestore DB中获得一个用户。我会毫无问题地返回结果,但当我将其存储在状态数组中并运行控制台日志时,我的状态数组总是空的。第一个console.log工作并显示DB的结果。 请帮帮忙。
为什么第一个成功而第二个失败?人们可能期望它们产生相同的输出。
问题内容: true如果传入的数字包含,则此方法返回1。 该+ “”零件的目的是 什么?如何使一个?(据我所知.contains只能使用Strings)。 问题答案: Anint是原始元素。在字符串中添加基元将执行该基元到a的隐式转换,String并将两个字符串加在一起。在这种情况下,将int转换并添加”“(empty String), 可以重写为: 要么 要么