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

如何将char转换为byte?

发布时间:2020-12-15 01:12:09 所属栏目:Java 来源:网络整理
导读:我正在研究一个开源代码,我遇到了以下几行 stringBytes[i] = (byte) (stringChars[i] 0x00FF); 谁能解释一下这行中究竟发生了什么? 最佳答案 Char由Java中的2个字节组成,当然字节是单字节. 所以在这个操作中: stringBytes[i] = (byte) stringChars[i] 0x00

我正在研究一个开源代码,我遇到了以下几行

stringBytes[i] = (byte) (stringChars[i] & 0x00FF);

谁能解释一下这行中究竟发生了什么?

最佳答案
Char由Java中的2个字节组成,当然字节是单字节.

所以在这个操作中:

stringBytes[i] = (byte) stringChars[i] & 0x00FF

char值(16位)是二进制ANDED,编号为0x00FF(二进制:0000 0011 1111 1111),使其为一个字节.

通过使用8 0和8 1的二进制ANDING,您基本上屏蔽了char值的8个最左或最高有效位(MSB),因此仅保留8个最右或最低有效位(LSB).然后代码通过使用cast(byte)将结果值分配给一个字节,否则为int值.

(编辑:李大同)

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

    推荐文章
      热点阅读