I want to count the bits in the long long type variable. For example, 1100011001 -> 5  In the integer type, I can use   a = (a &amp; 0x5555) + ((a &amp; 0xAAAA) &gt;&gt; 1);  a = (a &amp; 0x3333) + ((a &amp; 0xCCCC) &gt;&gt; 2);  a = (a &amp; 0x0F0F) + ((a &amp; 0xF0F0) &gt;&gt; 4);  a = (a &amp; 0x00FF) + ((a &amp; 0xFF00) &gt;&gt; 8);    but in case of "long long", how to do that?
2629
8 bits representing the number 7 look like this:  00000111   Three bits are set.     What are algorithms to determine the number of set bits in a 32-bit integer?
32772
In chapter 2, the section on bitwise operators (section 2.9), I'm having trouble understanding how one of the sample methods works.  Here's the method provided:  unsigned int getbits(unsigned int x, int p, int n) {     return (x &gt;&gt; (p + 1 - n)) &amp; ~(~0 &lt;&lt; n); }   The idea is that, for the given number x, it will return the n bits starting at position p, counting from the right (with the farthest right bit being position 0). Given the following main() method:  int main(void) {     int x = 0xF994, p = 4, n = 3;     int z = getbits(x, p, n);     printf("getbits(%u (%x), %d, %d) = %u (%X)\n", x, x, p, n, z, z);      return 0; }   The output is:     getbits(63892 (f994), 4, 3) = 5 (5)   I get portions of this, but am having trouble with the "big picture," mostly because of the bits (no pun intended) that I don't understand.  The part I'm specifically having issues with is the complements piece: ~(~0 &lt;&lt; n). I think I get the first part, dealing with x; it's this part (and then the mask) that I'm struggling with -- and how it all comes together to actually retrieve those bits. (Which I've verified it is doing, both with code and checking my results using calc.exe -- thank God it has a binary view!)  Any help?
118343
I'd like to display the binary (or hexadecimal) representation of a floating point number.  I know how to convert by hand (using the method ), but I'm interested in seeing code samples that do the same.  Although I'm particularly interested in the C++ and Java solutions, I wonder if any languages make it particularly easy so I'm making this language agnostic.  I'd love to see some solutions in other languages.  EDIT: I've gotten good coverage of C, C++, C#, and Java.  Are there any alternative-language gurus out there who want to add to the list?
19697
Can any one tell the bit size of boolean in Java?
99917
If you declare variables of type byte or short and attempt to perform arithmetic operations on these, you receive the error "Type mismatch: cannot convert int to short" (or correspondingly "Type mismatch: cannot convert int to byte").   byte a = 23; byte b = 34; byte c = a + b;   In this example, the compile error is on the third line.
67282
A 64-bit double can represent integer +/- 253 exactly. Given this fact, I choose to use a double type as a single type for all my types, since my largest integer is an unsigned 32-bit number. But now I have to print these pseudo integers, but the problem is they are also mixed in with actual doubles. So how do I print these doubles nicely in Java? I have tried String.format(&quot;%f&quot;, value), which is close, except I get a lot of trailing zeros for small values. Here's an example output of of %f  232.00000000 0.18000000000 1237875192.0 4.5800000000 0.00000000 1.23450000  What I want is:  232 0.18 1237875192 4.58 0 1.2345  Sure I can write a function to trim those zeros, but that's lot of performance loss due to string manipulation. Can I do better with other format code?  The answers by Tom E. and Jeremy S. are unacceptable as they both arbitrarily rounds to two decimal places. Please understand the problem before answering.  Please note that String.format(format, args...) is locale-dependent (see answers below).
51855
I am studying for an exam and I am having trouble with this practice question:  In this question, we consider finite bit strings that do not contain $00$. Examples of such bitstrings are $0101010101$ and $11110111$. For any integer $n\geq 2$, let $B_n$ be the number of bitstrings of length $n$ that do not contain $00$.   Determine $B_2$ and $B_3$. Prove that $B_n = B_{n-1} + B_{n-2}$ for each $n\geq 4$. For each $n\geq 2$, express $B_n$ in terms of a Fibonacci number.   Any help is greatly appreciated
40546
In C/C++, what an unsigned char is used for? How is it different from a regular char?
43985
Question: How many  zeroes will there be at the end of $(127)!$  Approach: Considering the fact that when two numbers ending in $x$ and $y$ zeroes are multiplied, the resulting number contains $x+y$ zeroes: The numbers to be multiplied that contain zeroes: $$120,110,100,90,80.....10$$ That comes out to be a total of 13 zeroes. However, that doesn't seem to be the correct answer. Rethinking it, it's obvious that I'm missing out on several cases. For example: $$25*22 = 550$$ This is just one of the cases which will add a zero. How would I account for all these cases?
46105
If I have some integer n, and I want to know the position of the most significant bit (that is, if the least significant bit is on the right, I want to know the position of the furthest left bit that is a 1), what is the quickest/most efficient method of finding out?  I know that POSIX supports a ffs() method in strings.h to find the first set bit, but there doesn't seem to be a corresponding fls() method.  Is there some really obvious way of doing this that I'm missing?  What about in cases where you can't use POSIX functions for portability?  Edit: What about a solution that works on both 32 and 64 bit architectures (many of the code listings seem like they'd only work on 32 bit ints).
54069
Can I use exponential (exp) math function in PIC16F877A code? For example like this:  double a,ans; a=5.7; ans=exp(0.5);
28149
• $C_n =$ this number of bit strings  • A binary string with no adjacent 0s is constructed by   Adding “1” to any string w of length $n-1$ satisfying the condition, or Adding “10” to any string v of length $n-2$ satisfying the condition   I still don't find that intuitive at all. Why adding up $C_{n-1} + C_{n-2}$ results in $C_n$? I have tried my best and asked my friends for help, but they find the formula unintuitive as well. Could anyone here come up with a clear explanation? Thanks!
41565
The printf function takes an argument type, such as %d or %i for a signed int. However, I don't see anything for a long value.
3996
I'm looking for the fastest way to determine if a long value is a perfect square (i.e. its square root is another integer):    I've done it the easy way, by using the built-in  function, but I'm wondering if there is a way to do it faster by restricting yourself to integer-only domain. Maintaining a lookup table is impractical (since there are about 231.5 integers whose square is less than 263).   Here is the very simple and straightforward way I'm doing it now:  public final static boolean isPerfectSquare(long n) {   if (n &lt; 0)     return false;    long tst = (long)(Math.sqrt(n) + 0.5);   return tst*tst == n; }   Note: I'm using this function in many  problems.  So no one else will ever have to maintain this code.  And this kind of micro-optimization could actually make a difference, since part of the challenge is to do every algorithm in less than a minute, and this function will need to be called millions of times in some problems.    I've tried the different solutions to the problem:   After exhaustive testing, I found that adding 0.5 to the result of Math.sqrt() is not necessary, at least not on my machine. The  was faster, but it gave incorrect results for n >= 410881.  However, as suggested by , we can use the FISR hack for n &lt; 410881. Newton's method was a good bit slower than Math.sqrt().  This is probably because Math.sqrt() uses something similar to Newton's Method, but implemented in the hardware so it's much faster than in Java.  Also, Newton's Method still required use of doubles. A modified Newton's method, which used a few tricks so that only integer math was involved, required some hacks to avoid overflow (I want this function to work with all positive 64-bit signed integers), and it was still slower than Math.sqrt(). Binary chop was even slower.  This makes sense because the binary chop will on average require 16 passes to find the square root of a 64-bit number. According to John's tests, using or statements is faster in C++ than using a switch, but in Java and C# there appears to be no difference between or and switch. I also tried making a lookup table (as a private static array of 64 boolean values).  Then instead of either switch or or statement, I would just say if(lookup[(int)(n&amp;0x3F)]) { test } else return false;.  To my surprise, this was (just slightly) slower. This is because .
91461
I found the method .But I do not know how to perform this in VHDL. Let a fixed point number (12 downto -19) like 3456.478396 I need break this number entirely into separate numbers 3456.478396 --> 3,  4, 5,  6,  (dot) ,  4,  7,  8,  3,  9,  6...  into 11 integer type variables. How to perform this in VHDL?  signal example : sfixed(4 downto -4); --'example' contains 9.75 then it is storage as "01001.1100". --simply example ="10011100". --10011100 --&gt; integer 156   How to get back original 9.75 number from 156 to separate into single digits?  I USED,  library ieee; library ieee_proposed; use ieee.std_logic_1164.all; use ieee.numeric_std.all; use ieee_proposed.float_pkg.ALL; use ieee_proposed.fixed_pkg.ALL; use ieee_proposed.fixed_float_types.ALL;
40309
What is the best way to convert a double to a long without casting?  For example:  double d = 394.000; long l = (new Double(d)).longValue(); System.out.println("double=" + d + ", long=" + l);
57658
I'm thinking of modulo, but really don't know how to start? A hint would be sufficient.     Thanks, Chan