java & operator with two integers?

22,793

& and && are two different operators but the difference is not what you've described.

& does the bit-wise AND of two integers and produces a third integer whose bit are set to 1 if both corresponding bits in the two source integers are both set to 1; 0 otherwise.

&& applies only to two booleans and returns a third boolean which will be true if both the input booleans are true; false otherwise.

Share:
22,793
nife552
Author by

nife552

Updated on December 18, 2020

Comments

  • nife552
    nife552 over 3 years

    From what I understand the & operator is similar to the && operator except that the && only checks the second if the first is true, while the & checks both regardless of the result of the first one. Basically the && just saves a little time and power.

    If that is so, then how does this code work?

    int l = 0;
    if ((l & 8) != 0 && (l & 4) == 0){ do something}
    

    what does the (l & 8) and the (l & 4) do? What does the & do in this case?

  • nife552
    nife552 over 10 years
    That makes a lot more sense. Does it use the binary codes from ASCII, or just straight binary 0 being 0, 1 being 1, 10 being 2, and so on?
  • Raffaele Rossi
    Raffaele Rossi over 10 years
    To use your terminology it uses "just straight binary 0 being 0, 1 being 1, 10 being 2, and so on", which is known as binary number. ASCII is a way of coding "written alphabet" characters to a binary numbers (aka character-encoding). There exist others like EBCDIC or UNICDE