【问题标题】:using ! on int in JAVA [duplicate]使用 !在 JAVA 中的 int [重复]
【发布时间】:2018-06-14 21:06:13
【问题描述】:

我正在编写一个 java 程序,我正在使用一个二维数组创建一个全减法器的真值表。这样做时,我想用以下公式计算借出: B(out) = !(X).Y + (!(X ^ Y))B(in)

所以,我是这样写的:

table[i][4] = ((!(table[i][2]))&table[i][1])+((!(table[i][2]^table[i][1]))*table[i][0]);

(here: table[i][4] = cell to store borrow out; 
       table[i][2] = cell storing X; 
       table[i][1] = cell storing Y; 
       table[i][0] = cell storing borrow in B(in) )

虽然 XOR(^) 和 AND(&) 和 or(|) 工作正常,但 NOT(!) 出现以下错误:

operator ! cannot be applied to int 

我该如何纠正这个问题?有没有其他方法可以将此公式编写为 JAVA 代码?请帮忙。

【问题讨论】:

  • 为什么要使用int 来存储boolean 值?
  • X 是函数还是值?如果它是一个函数,则需要返回一个boolean 值,因为! 1 没有意义,但! true 可以。 ! 用于反转 boolean 结果
  • 您需要将位运算符与ints 一起使用,而不是逻辑运算符

标签: java int not-operator boolean-algebra


【解决方案1】:

可以应用于整数值的按位补码运算符是~,而不是!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2012-08-23
    • 2020-11-30
    • 2014-07-19
    相关资源
    最近更新 更多