Results 1 to 3 of 3

Thread: c++ question

  1. #1

    c++ question

    in this code
    Code:
    unsigned int maxsize = 1024U*1024U*1024U*2U;
    int size = 1024;
    (...)
    for(size=128;size<maxsize/4;size+=(size/4+7)&~7) 
    {
    instructions here...;
    }
    my questions are:
    what does the U after 1024 stand for?
    and what does the operator &~ do in the loop?
    thnks

  2. #2
    The "U" casts it as unsigned, rather than doing that though you should #include limits.h and then use UINT_MAX because that is system dependent (eg 64 bit vs 32 bit should be different). Putting a F at the end makes it a float.

    And the & operator is "bitwise and"; ~ is "bitwise complement" so that will take the complement of 7's bits and AND them with size/4+7 (so basically it is the same as subtracting size/4+7%7)

    Look up bitwise operators if you're still confused.

  3. #3
    &~7 has the net effect of clearing the first 3 bits of the number.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Home About kirupa.com Meet the Moderators Advertise

 Link to Us

 Credits

Copyright 1999 - 2012