加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Bitwise Operations简称

发布时间:2020-12-15 00:55:35 所属栏目:Java 来源:网络整理
导读:我使用的是一种名为DDS的技术,在IDL中,它不支持int.所以,我想我会用简短的??.我不需要那么多比特.但是,当我这样做时: short bit = 0;System.out.println(bit);bit = bit | 0x00000001;System.out.println(bit);bit = bit ~0x00000001;bit = bit | 0x0000000
我使用的是一种名为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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读