标签: equality

比较Char指针

我想比较两个Char指针:

   char * x;
   char * y;

   x = "Hesham";
   y = "Hesham";

   printf("%d %d \n", &x, &y);

   if(x==y)
   {
     printf("=\n");
   }
   else
   {
     printf("!=\n");
   }
Run Code Online (Sandbox Code Playgroud)

执行结果是:

2293368 2293360
=
Run Code Online (Sandbox Code Playgroud)

1 - 为什么两个指针有不同的收件人,操作==返回true?

2 -为什么编译存储字符串没有文字Hesham只有一次,并使用其地址两次xy

c c++ pointers equality char

0
推荐指数
1
解决办法
3562
查看次数

obj1 == obj2实际比较了什么

我正在学习Overriding hashCode()和课堂equals(Object obj)方法Object.

类中的equals(Object obj)方法体Object是:

public boolean equals(Object obj) {
    return (this == obj);
}
Run Code Online (Sandbox Code Playgroud)

hashCode()native:

public native int hashCode();
Run Code Online (Sandbox Code Playgroud)

我有一个类Test有overrided equals(Object obj)hashCoe():

public class Test {

public static void main(String[] args){
    Test t1 = new Test();
    Test t2 = new Test();

    System.out.println("t1 toString() : " + t1.toString());
    System.out.println("t1, Hex value of hashcode : " + Integer.toHexString(t1.hashCode()));
    System.out.println("t2 toString() : " + …
Run Code Online (Sandbox Code Playgroud)

java equality equals object hashcode

0
推荐指数
1
解决办法
1745
查看次数

将float与特定NAN值进行比较的最正确方法是什么?

NaN可能具有许多不同的二进制表示,这通常可用于提供有关NaN导致的更多信息.任何IEEE 32位浮点格式x111 1111 1xxx xxxx xxxx xxxx xxxx xxxx为NaN.此外,2个NaN(可能不同的二进制值)之间的任何比较评估为假.

给两个花车:

float a = NaN1;
float b = NaN2;
Run Code Online (Sandbox Code Playgroud)

两者都是NaN,但x上面的位可能有不同的值,比较它们的二进制内容的最正确方法是什么(即检查它们是否是相同类型的NaN)?

对我来说最明显的方法是执行c样式转换,*(uint32_t*)&a == *(uint32_t*)&b 但是,浮点数的大小不能保证为32位.

c++ floating-point equality ieee-754

0
推荐指数
1
解决办法
111
查看次数

"和"有什么区别?

为什么我的代码工作,当我在以下代码中使用"时:

for(int i=0;i<7;i++){
        if(grid[row][i]!=0){
            if(player == "yellow"){
                grid[row][i-1] = 'y';
            }
            else if(player == "red"){
                grid[row][i-1] = 'r';
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是当我在以下代码中使用'时,请不要工作:

for(int i=0;i<7;i++){
        if(grid[row][i]!=0){
            if(player == 'yellow'){
                grid[row][i-1] = 'y';
            }
            else if(player == 'red'){
                grid[row][i-1] = 'r';
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

它总是说,"无效的字符常量".
- grid是一个二维char变量
- row是一个interger
-player是超类(window)受保护的,并且在超类的构造函数中占用了黄色值:

protected String player;

public window() {
    player = "yellow";
}
Run Code Online (Sandbox Code Playgroud)

java string if-statement equality

0
推荐指数
1
解决办法
106
查看次数

查找两个Swift数组是否包含相同的元素

我有两个数组

let a1 = [obj1, obj2, obj3]
let a2 = [obj3, obj2, obj1]
Run Code Online (Sandbox Code Playgroud)

假设数组元素是不能排序的自定义对象。我只想检查Arrays 是否以相同顺序包含相同的元素。

我尝试了这个:

if a1==a2 { print("S1 is the same as S2") }
else { print("S1 is not the same as S2") }
Run Code Online (Sandbox Code Playgroud)

但我得到“ S1与S2不同”的输出。

我能想到的只有两个解决方案

  • 排序和比较(如果元素不可排序,例如复数,则无效)
  • 从另一个数组中减去一个数组

是否有任何内置函数或操作可以检查它们是否相等,而无需考虑顺序?

我发现了如何在Swift中检查两个数组是否包含相同的元素,而不管这些元素出现的顺序如何?仅对sortable Array s 有答案。

arrays equality swift

0
推荐指数
1
解决办法
1910
查看次数

Python - 比较2个相同的对象返回False?

我已经定义了一个类:

class User:

    Name = ""
    Age = ""
    Gender = ""

    def __init__(self, var1, var2, var3):
        self.Name = var1
        self.Age = var2
        self.Gender = var3

    def __hash__(self):
        return hash(self.Name)
Run Code Online (Sandbox Code Playgroud)

现在,当我创建两个相同的对象:

User1 = User("Ted", "43", "M")
User2 = User("Ted", "43", "M")
Run Code Online (Sandbox Code Playgroud)

并试图比较它们:

print(User1 == User2)
Run Code Online (Sandbox Code Playgroud)

它回来了False吗?

python equality

0
推荐指数
1
解决办法
101
查看次数

python np.nan和'=='&'is'

当我检查Python操作数的相等性和身份时,例如,a = []; b = a我得到了:

a == b => True
a is b => True
Run Code Online (Sandbox Code Playgroud)

我了解。

所以,为什么我用np.nan得到差异结果?:

a = np.nan; b = a 
a == b => False
a is b => True
Run Code Online (Sandbox Code Playgroud)

python identity equality

0
推荐指数
1
解决办法
93
查看次数

为什么d的值为1而不是6?

#include <stdio.h>
    int main()
    {
        int a = 10, b = 5, c = 5;
        int d;
        d = b + c==a;
        printf("%d", d);
    }
Run Code Online (Sandbox Code Playgroud)

我想c==a将计算为1b+1,即5+1=6会输出却是1,如果我改变+,以*输出为0。为什么?

c equality

0
推荐指数
1
解决办法
90
查看次数

三等号 R

我正在尝试创建一个检查严格相等性的函数,我想使用三重等号。一些背景:

> 3 == '3'
[1] TRUE
> FALSE == 0
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

上述所有检查都会返回,TRUE因为输入被强制转换为通用类型。但是我想检查严格的平等。该identical功能正是我所需要的。

> identical(3,'3')
[1] FALSE
> identical(FALSE, 0)
[1] FALSE
Run Code Online (Sandbox Code Playgroud)

现在我想以更简洁、更简洁的方式实现这一点。就像在 Javascript 中一样,我想使用三重等号。我写了这个函数:

`===` <- function(a,b){
  identical(a,b)
}
Run Code Online (Sandbox Code Playgroud)

然而,这并不像预期的那样:

> 3 === 3
Error: unexpected '=' in "3 ==="
Run Code Online (Sandbox Code Playgroud)

我错过了什么?谢谢

symbols equality r function

0
推荐指数
1
解决办法
254
查看次数

我如何表达比 Python 大得多的东西

我需要比较大于等于的 if 语句的两个值。

        if delta_t > tao_threshhold:
            n = np.random.normal(0, 1)  
            rxn_vector = propensity*delta_t + (propensity*delta_t)**0.5*n 
            new_popul_num = popul_num
Run Code Online (Sandbox Code Playgroud)

但我需要平等远远大于。在数学中使用的符号是 >> 但这在 Python 语法中意味着完全不同的东西。

有没有办法表达这比 Python 中的平等大得多?

干杯

python equality comparison-operators

0
推荐指数
1
解决办法
295
查看次数