【问题标题】:How do I print a short as an unsigned short in Java如何在 Java 中将 short 打印为 unsigned short
【发布时间】:2011-03-10 09:18:42
【问题描述】:

我有一个 short 数组,其值介于 0 和 short 的最大值之间。我缩放数据(将其显示为 TYPE_USHORT),以便生成的短值介于 0 和 65535 之间。我需要打印一些缩放值,但不知道如何打印。数据位于数组和 BufferedImage 中。

【问题讨论】:

    标签: java unsigned short ushort


    【解决方案1】:

    最简单的方法是转换成int:

    short s = ...;
    int i = s & 0xffff;
    

    位掩码是为了让转换给出一个 0-65535 范围内的值,而不是 -32768-32767。

    【讨论】:

    • 相当有效,但可读性不如Short.toUnsignedInt()
    • @scottb: 是的 - 虽然答案是在写完大约四年后才出现的 :)
    【解决方案2】:

    从 Java 1.8 开始,Short.toUnsignedInt 也可以这样做:

    System.out.println("signed s=" + s + ", unsigned s=" + Short.toUnsignedInt(s))
    

    【讨论】:

    • 时间有什么不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多