所以,这几乎是中期的时间,教授给了我们一些示例问题.
我认为答案是:
给出一个f = 50000的浮点数.
如果我们做f*f我们得到2,500,000,000.
现在,我假设我们正在使用32位机器,因为这是我们迄今为止研究的内容.因此,如果是这种情况,则默认情况下认为2,500,000,000 32位浮点未被声明为无符号.由于2,500,000,000比4294967296的32位表示稍微超过一半,并且它已经签名,我们将返回负值,因此语句f*f <0将为真,对吧?
我只学习了4周的系统编程,如果我错了,请纠正我.
我正在阅读计算机系统程序员的观点,我正在进入逻辑运算符,它与逐位运算符类似,但有一些差异.
我无法弄清楚当你有一个逻辑操作数时!0x00返回0x01而不是0x11?
!是不正确的?所以NOT 0(false)应该是1(true)而另一个NOT 0(false)也应该是1(true),对吧?
我看一下bitwise运算符的例子:~00,自然会返回11,但C的逻辑运算符似乎有很大的差异.
为什么会这样?
我已经尝试过了:进一步阅读以找到我寻求的答案,它似乎并不在这里.
我认为问题是:可能与十六进制的工作原理有关吗?但是,十六进制仍然可以有0x11....
c ×2