ostream& operator<<(ostream& os, fixw& fw) {
return os << fw.s;
}
// Print a number in binary:
typedef unsigned long ulong;
class bin {
ulong n;
public:
bin(ulong N);
friend ostream& operator<<(ostream&, bin&);
};
bin::bin(ulong N) { n = N; }
ostream& operator<<(ostream& os, bin& b) {
ulong bit = ~(ULONG_MAX >> 1); // Top bit set
while(bit) {
os << (b.n & bit ? '1' : '0');
bit >>= 1;
}
return os;
}
void main() {
char* string ="Things that make us happy, make us wise";
for(int i = 1; i <= 10; i++)
cout << fixw(string, i) << endl;
ulong x = ULONG_MAX;
ulong y = 0x76543210UL;
cout << "x in binary: " << bin(x) << endl;
cout << "y in binary: " << bin(y) << endl;
}