Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
236 views
in Technique[技术] by (71.8m points)

Bitwise operations | And | Which situation is true or false in c#

I show my question by an example :

    int a = 1 << 0; // = 1
    int flag = 1;
    bool b = flag & a; // = 1 < In c++ this line has no error but in c# error is like this :

Cannot be applied to operands of type 'bool' and 'int'

  1. When b variable is true and when b variable is false in c#?

  2. How fix the error?

  3. When does c++ recognize that b variable is true? The other side should be (flag & a) != 0 or (flag & a) == 1 or something else?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

In C# you write it like so:

bool b = (flag & a) != 0;

You can't assign an int to a bool in C#, like you can in C++.

(In C++ the compiler generates code that effectively does the same as the code above, although most C++ compilers will generate a warning if you just try to assign an int to a bool.)

Also see the Visual C++ warning C4800, which tells you to write it this way in C++ too.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

57.0k users

...