当前位置: 首页 > 知识库问答 >
问题:

为什么我不能将(字节)数据类型转换为(短)数据类型Java

纪佐
2023-03-14

所以,实际上我对Java编程语言还是新手,并且还在学习如何转换数据类型,所以在这种情况下,我很难将字节转换为短字节。你们能帮帮我吗??

public class Main {
    public static void main(Strings[] args) {
        int number = 2;
        long updateNumber = number + 2;
        System.out.println(updateNumber); //output : 4
    }
}

所以在这种情况下,我可以正常地从(int)转换为(long)数据类型,因为(long)数据大小大于(int)。这与我尝试将其从(short)转换为(int)时的情况相同。但为什么我不能使用这个概念将数据类型从(byte)转换为(short)??即使(短)数据大小大于(字节)??

public class Main {
    public static void main(Strings[] args) {
        byte number = 2;
        short updateNumber = number + 2;
        System.out.println(updateNumber); //output : Error
    }
}

我想就是这样。。很抱歉给你添麻烦,谢谢你。呵呵。。

共有1个答案

杜良骏
2023-03-14

当我们添加两个字节类型变量或带有int类型变量的字节类型变量时,结果会自动转换(隐式转换)到int类型变量。因此,如果要将加法结果赋给一个短类型变量,编译器将给出错误。

而您可以通过显式转换将其分配给short类型变量。

public static void main(String[] args) throws MyException {
        byte number = 2;
        //Explicit casting
        short updateNumber = (short) (number + 2);

        System.out.println(updateNumber); // output : Error
}

由于加法的结果可能会溢出,因为这里的数字变量值可以在运行时更改。所以,如果您将数字声明为final,并且数字的加法符合字节的范围,那么就不需要进行显式转换,因为编译器将提前知道加法的结果是否可以按字节保存。

public static void main(String[] args) throws MyException {
        final byte number = 2;
        //Explicit casting not needed as number is final
        short updateNumber = number + 2;
    
        System.out.println(updateNumber); // output : Error
 }
 类似资料:
  • 我不明白,为什么我会有这个错误: 04-24 22:11:51.263:W/System.err(27504):org.JSON.jsonException:Value不能转换为JSONArray

  • 问题内容: 我有一个类型为TYPE_4BYTE_ABGR的字节数组,我知道它的宽度和高度,我想将其更改为BufferedImage,有什么想法吗? 问题答案: 可能效率不是很高,但是可以通过以下方式将a转换为另一种类型: 关于您要实现的方法,您必须知道图像的宽度或高度才能将a转换为a 。 编辑: 一种方法是将转换为(数据类型)并使用:

  • 我有一个非常具体的要求。我有一个java应用程序,在这里我必须将字节数组转换为具有int、String等java类型的消息。消息的结构在c中定义如下- 我在java应用程序中收到的是字节数组。我不知道c应用程序是否使用proto缓冲区或任何其他方式来转换为字节数组。但是,如果我逐个字节地解析数组,我可以得到值。例如- 这一行将返回正确的id值(结构中的第一个属性是int)。 我的问题是——如果我为

  • 问题内容: 我正在SQLite Manager中创建数据库。我想存储到数据库中。正确显示了另一个字段,但是当我使用数据类型的字段时,它不会显示。 问题答案: 您可以将图像转换为字节数组,并将该字节数组存储在数据库中的blob中。您可以将图像作为字节数组从数据库中检索回来。 如何从imageview获取字节数组: 将字节数组存储在数据库中: 从字节数组中检索图像:

  • 我有一个Oracle表,其中列类型为CLOB。我想保留列顺序并将数据类型更改为VARCHAR2。该列只包含文本。 我得到了一个标准的信息: 我们将不胜感激。我已经在这方面工作了一段时间了。如果你有任何问题请告诉我。

  • 我想将String转换为子类数据类型,如何才能做到?或者这是可能的? 我有一个抽象类帐户 公共抽象类SinAcct扩展了Acct 一个公共类SavAcct扩展了SinAcct 在SavAcct中,有一个构造函数 一个抽象类合并帐户扩展帐户 我想要一个新的SavAcct, 新的SavAcct(数组[1],数组[2],数组[3],Double.parse双(数组[4]) 但它是错误的构造函数SavAc