第2章 编程问题 2.2节 1
来源:互联网 发布:python搭建web服务器 编辑:程序博客网 时间:2024/06/06 20:19
编写并测试一个函数printBinary(),这个函数按照你所采用的C++版本
中存储int型值所用的二进制位的个数,以二进制形式显示int型值。
例如,如果int型使用32位,则函数对于值17显示00000000000000000000000000010001
算法描述:
(1)初始化一个unsigned int型变量mask,它的值的二进制表示为1
后面跟着全是0;例如,对于32位表示,应该是10000000000000000000000000000000。
(2)对于一个从1开始,到二进制位的个数为止的计数器,做以下工作:
①如果给定整数与mask按位与(&)的结果非0
显示‘1’
否则
显示‘0’
②将mask中的位右移一位
C++实现:
#include <iostream>using namespace std;void printBinary(int value);void main() { printBinary(17); system("pause");}void printBinary(int value) { int bitOfBinary = sizeof(value) * 8;//sieof运算符获取value占几个字节,一个字节是8位 unsigned int mask = 1 << (bitOfBinary - 1);//假设bitOfBinary是32,将1左移31位得到10000000000000000000000000000000 for (int i = 1; i <= bitOfBinary; i++) { int temp = mask & value; if (temp == 0) { cout << 0; } else { cout << 1; } mask >>= 1;//每次将mask右移一位 }}
0 0
- 第2章 编程问题 2.2节 1
- 第2章 编程问题 2.2节 3
- 第3章 编程问题 3.2节 2
- 第3章 编程问题 3.2节 1
- 第3章 编程问题 3.2节 3
- 第3章 编程问题 3.2节 4
- 第3章 编程问题 3.3节 9
- 编程珠玑--第12章 取样问题
- 《编程珠玑》第12章:取样问题
- 读书笔记《C++编程思想》第1卷 第2章
- JAVA编程思想 第1,2章
- 编程珠玑 第1/2/3章
- JAVA编程思想学习总结:第21章第1-2节基本的线程机制
- n元一维向量旋转问题(编程珠玑--第2章--问题B )
- 第2章 Unicode编程
- 数据库编程第2章
- 数据库编程第1章
- 【C++语言99个常见编程错误】第2章 语法问题
- C语言数据结构——子串在主串中的定位函数
- Eigen3.3.3安装配置+VS2015+Cmake
- Problem B: 建造一间教室
- MATLAB测试机器零阈值的大小
- 【转载】锁存器、寄存器、触发器区别
- 第2章 编程问题 2.2节 1
- 3月23日成为C++游戏服务器工程师的学习收获
- 字符流的读写相关
- Problem C: 是否回文数?
- PAT_1047. Student List for Course
- Storm入门-storm的安装
- js中call,apply和bind方法的区别和使用场景
- Problem D: Base与Derived
- 文件描述符(fd)和FILE结构体的关系