Binary a和非布尔运算二进制值的变化毫无意义

Binary a和非布尔运算二进制值的变化毫无意义,binary,boolean-operations,Binary,Boolean Operations,如果a=01101001 b=01010101 那么~a=10010110 ~b=10101010 ~a的结果对我来说完全有道理 但是~b的结果没有人能解释~b吗 谢谢这不只是一个小小的翻转 真值表: A ~A 0 1 1 0 在~a和~b中,所有位都从1翻转到0或从0翻转到1(视情况而定)。我了解这些家伙,但在b中似乎不是这样。我再仔细看看。谢谢你很难看出你对~b的期望,因为~a给了你期望的结果。您认为~b中应该包含哪些内容,而不是10101010?有了这些信息,我们也许可以帮助解释你的

如果a=01101001 b=01010101

那么~a=10010110

~b=10101010

~a的结果对我来说完全有道理

但是~b的结果没有人能解释~b吗


谢谢

这不只是一个小小的翻转

真值表:

A ~A
0  1
1  0

在~a和~b中,所有位都从1翻转到0或从0翻转到1(视情况而定)。

我了解这些家伙,但在b中似乎不是这样。我再仔细看看。谢谢你很难看出你对
~b
的期望,因为
~a
给了你期望的结果。您认为
~b
中应该包含哪些内容,而不是
10101010
?有了这些信息,我们也许可以帮助解释你的解释有什么问题。你是如何测试结果的?你使用哪种语言,在哪种平台上?@JonathanLeffler谢谢你,我会给你你需要的信息。我现在不使用任何语言。更确切地说,我是在自学一本叫做《计算机系统》的书。我下学期要上这门课,我只是想取得进步。但是根据~a的设置方式,我预计~b为01010101,因为b为01010101,b为55,55的不正确,55。正如a的非96表示69一样。我想这些数字会像a中的数字一样翻来覆去。再说一次,我觉得你的帮助很有意思。当应用
~
(位反转运算符)时,您希望
011010001
变成
10010110
,但当应用
~
运算符时,您不希望
01010101
变成
10101010
?计算机如果不一致就什么都不是。C及相关语言(C++、Java、C#、…)中的
~
运算符翻转给定值中的每一位。这就是
a发生的事情,也是您所期望的;这也是发生在
b
上的事情,但显然不是你所期望的?没有任何值
x
,请忽略该值。我明白了,哈哈,我太笨了。x的~x只是将值a 0变为1,a 1变为0,然后根据该值计算值。哈哈,谢谢guys@JonathanLeffler为了解释我的想法,我并没有把这个问题看作二进制数,也就是说,在a中的0110101,我考虑的是它的十进制值。所以01101001=69,这意味着~a=96。我的问题我想的问题是错误的,我会计算十进制数,并期望在此基础上进行更改。不是以二进制形式切换1和0的值。这就是问题所在。谢谢大家