java – Bitwise Operations简称

前端之家收集整理的这篇文章主要介绍了java – Bitwise Operations简称前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用的是一种名为DDS的技术,在IDL中,它不支持int.所以,我想我会用简短的​​.我不需要那么多比特.但是,当我这样做时:
short bit = 0;
System.out.println(bit);
bit = bit | 0x00000001;
System.out.println(bit);
bit = bit & ~0x00000001;
bit = bit | 0x00000002;
System.out.println(bit);

它说“类型不匹配:无法从int转换为short”.当我改变短到长时,它工作正常.

是否有可能在Java中执行这样的按位操作?

解决方法

在对byte,short或char进行任何算术时,数字将被提升为更宽的int类型.要解决您的问题,请将结果显式转换为简短:
bit = (short)(bit | 0x00000001);

链接

>堆栈溢出:Promotion in Java?
> Java语言规范部分5.6:http://java.sun.com/docs/books/jls/second_edition/html/conversions.doc.html#26917

原文链接:https://www.f2er.com/java/130089.html

猜你在找的Java相关文章