使用位段实现整数的二进制形式输出
2009-02-02 00:36
260 查看
下面是简单的演示代码。可以将它封装成类使用。
#include <iostream> using namespace std; #define D(name) unsigned name:1 union _U{ public: struct { D(a0); D(a1); D(a2); D(a3); D(a4); D(a5); D(a6); D(a7); } S; int I; friend ostream& operator<<(ostream& out, const _U& u) { //return out << char(u.S.a7+'0') << char(u.S.a6+'0'); return out << endl; } void print(ostream& out = cout) { out << S.a7 << S.a6 << S.a5 << S.a4 << S.a3 << S.a2 << S.a1 << S.a0 << endl; } }; int main() { _U u; u.I = 0; u.print(); //cout << u << endl; u.I++; u.print(); u.I = 127; u.print(); // cout << U << endl; for(u.I = 0; u.I <= 8; u.I++) { cout << u.I << endl; u.print(); } return 0; }
相关文章推荐
- 134 编程实现:把十进制数(long 型)分别以二进制和十六进制形式输出,不能使用 printf系列
- 从键盘输入某个十进制小数或整数,转换成对应的二进制小数并输出。 (查询十进制小数转换成二进制小数的算法,使用循环来实现。 最多保留小数位后7位数字即可)算法
- C语言位段操作,写一个程序,从键盘上接收一个整数,用二进制形式输出这个整数
- 用移位运算实现一个整数二进制形式的输出--简短程序分析
- CSND中将整数以二进制形式输出
- 雅虎面试题─把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列
- 用递归函数实现输出一个数的二进制形式
- 第十二周项目三(五):输出一个整数的二进制形式
- 第十三周-输入一个整数,要求输出对应的二进制形式。
- 把十进制数(long型)分别为二进制和十六进制形式输出,不能使用printf
- 【输出一个整数的二进制存储形式】
- 1.编程实现: 两个int(32位)整数m和n的二进制表达中, 有多少个位(bit)不同? 输入例子: 1999 2299 输出例子:7
- 把十进制数(long型)分别以二进制和十六进制形式输出,不使用printf系列库函数
- 把十进制数(long型)分别以二进制和十六进制形式输出,不使用printf系列库函数
- 把十进制数(long型)分别以二进制和十六进制形式输出,不能使用printf系列库函数
- 输出输入的任意整数的二进制存储形式
- 使用位运算实现有符号的十进制正负数转二进制输出
- 1.写一个函数返回参数二进制中1的个数2.获取一个数二进制序列中所有的偶数为和奇数位,分别输出二进序列3.输出一个整数的每一位4.编程实现:两个int(32位)整数m和n的二进制表达中,有多少个位(b
- 判断是否为2的幂||输出一个整数二进制格式中1的个数 非循环非递归实现
- C语言求一个整数的二进制形式表示中1的个数,用函数实现