-1

私は次のものを持っています:

void calculate(unsigned long num1, unsigned long num2){
   int32_t invertednum2 = ~(num2);    // yields 4294967040
   printf("%d\n", invertednum2);      // yields 255

   // num1 is 3232236032
   int32_t combine = (int32_t) num1 & num2;
   printf("%d\n", combine);           // yields 0???
}

結果が次のようになるように、num1 と num2 の AND をとろうとしています。

   000000000000000011111111

2 つの異なるビット長で正しく AND 演算を行っているかどうか、またはキャストする必要があるかどうかはわかりません。

どんな助けでも大歓迎です!

ありがとう

4

2 に答える 2