在java中如何将字符串值转换为二进制值
我有一个问题,有一次这样的主题,我不能真正理解代码的行在java中如何将字符串值转换为二进制值,java,Java,我有一个问题,有一次这样的主题,我不能真正理解代码的行binary.append((val&128)==0?0:1) 有人能给我解释一下到底发生了什么吗?128是10000000,是位和运算符-val中除第8位以外的所有内容都将被归零,因此有效地您将获取数字的第8位,因此对于val来说,就像0111111一样 01111111 & 10000000 -------- 00000000 该行将返回0128为10000000和&is位和运算符-val中除第8位以外的所有内容都将
binary.append((val&128)==0?0:1)代码>
有人能给我解释一下到底发生了什么吗?128是10000000,是位和运算符-val中除第8位以外的所有内容都将被归零,因此有效地您将获取数字的第8位,因此对于val
来说,就像0111111
一样
01111111
& 10000000
--------
00000000
该行将返回0
128为10000000和&is位和运算符-val中除第8位以外的所有内容都将被归零,因此您将有效地获取数字的第8位,因此对于val
,如0111111
01111111
& 10000000
--------
00000000
该行将返回0
这是一个位掩码,其形式为数字128,十六进制0x80,或二进制,1000 0000&
是按位AND运算
在这个问题中使用这个位掩码的原因相当简单——它使用并确定它是0还是1,然后用它来构建字符的二进制表示
选择128的原因-char
是一个包含128个可能值的整数值,因此在这里屏蔽其最大值是您保证获得值中每一位的方式。这是一个位屏蔽,其形式为数字128,十六进制0x80,或二进制1000 0000&
是按位AND运算
在这个问题中使用这个位掩码的原因相当简单——它使用并确定它是0还是1,然后用它来构建字符的二进制表示
选择128的原因-char
是一个包含128个可能值的整数值,因此在这里屏蔽其最大值是保证获得值中的每一位的方法。128二进制为1000 0000。
这段代码将val的第8位的值添加到对象二进制文件中。(AND函数将除第8位以外的所有其他位归零)。128二进制为1000 0000。
这段代码将val的第8位的值添加到对象二进制文件中。(AND函数将除第8位以外的所有位归零)。这个答案有什么问题?为什么这里需要AND操作?val&128为什么128?128是10000000
和&
是位和运算符-除了val
中的第8位之外,所有的东西都将被归零,因此有效地你将获取数字的第8位我真的很想知道人们为什么给我-1;)因为你一开始就给出了一个完全错误的答案?这个答案怎么了?为什么这里需要和操作?val&128为什么128?128是10000000
和&
是位和运算符-除了val
中的第8位之外,所有的东西都将被归零,因此有效地你将获取数字的第8位我真的很想知道人们为什么给我-1;)因为你一开始就给出了一个完全错误的答案?128是十六进制0x80,二进制1000 0000。您的位太多了。Good looking out@TDG.128是十六进制0x80和二进制1000 0000。你的位子太多了。很好看@TDG。