2011-12-21 21 views
-3

long long int x, y;を指定すると、x &と比較できる関数が必要で、通常のint 32ビットのT/Fフラグが返されます。私はこれを試してみましたが、それは私を混同long long型の算術演算/論理演算

#include <stdio.h> 
int main() { 
long long n,i; 

scanf("%l64d", &n); 
i=42; 

printf("%l64d", n); 
printf("%l64d", i); 
printf("\ni<=n --> %d\n",i<=n); 
return; 

}

+0

Arthimatic?算術?関節炎?ビットごとまたは論理的な操作について話していますか? '&'はビット単位です – Anycorn

+0

@Catcall申し訳ありませんが、私は自分のコードを入れられませんでした。どのように私は混乱した。しかし、私は怠け者ではありません。 – kannah

答えて

1

たぶん、何がtrueを返す。この(で例示されて求めているxは(GT)yよりも大きいかどうかに応じて、/ 1または偽/ 0 ):

int ll_compare_gt(long long x, long long y) 
{ 
    return(x > y); 
} 

他の比較を繰り返し...

算術演算は、より多くの問題がある - 多くの場合、2 01を加算した結果の値が大きすぎて、32ビットのintに収まりません。

しかし、あなたの質問は細かいところで非常に概略的であり、これは非常に幅が広​​いかもしれません。あなたは本当にはるかにはっきりしたいことを説明する必要があります。

+1

比較したいだけであれば(関数を渡すのではなく)、関数を使わなくても 'x> y'と書くことができます! – Shahbaz

+0

@Jonathan、コードが機能してくれてありがとうございます。私は、OS(Linux)のコンセプト移植を理解しようとしています。皆さんありがとう – kannah