Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中如何将字符串值转换为二进制值_Java - Fatal编程技术网

在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。