I want to output an int in 32-bit binary format. Is looping and shifting my only option?
            Asked
            
        
        
            Active
            
        
            Viewed 2,594 times
        
    -2
            
            
         
    
    
        Varaquilex
        
- 3,447
- 7
- 40
- 60
- 
                    32-bit binary format. What I meant is in the answer output. Is it not clear? Shall I edit my question? – Varaquilex Apr 30 '14 at 09:11
- 
                    Duplicate http://stackoverflow.com/questions/7349689/c-how-to-print-using-cout-the-way-a-number-is-stored-in-memory – Moberg Apr 30 '14 at 09:14
- 
                    @Varaquilex Well, it wasn't clear to me that you meant a text format. I guess I'm to used to hearing people use the word binary to mean not text. – James Kanze Apr 30 '14 at 09:43
1 Answers
6
            Looping is a way. You can also use bitset library.
#include <iostream>
#include <bitset>
int main(int argc, char** argv) {
    int i = -5, j = 5;
    unsigned k = 4000000000; // 4 billion
    std::cout << std::bitset<32>(i) << "\t" << std::bitset<32>(j) << std::endl;
    std::cout << std::bitset<32>(k) << std::endl;
    return 0;
}
And the output will be:
11111111111111111111111111111011       00000000000000000000000000000101
11101110011010110010100000000000
 
    
    
        Varaquilex
        
- 3,447
- 7
- 40
- 60