输出数字在内存中呈现的二进制数值
来源:互联网 发布:淘宝店价格表 编辑:程序博客网 时间:2024/06/18 06:43
以下例子用于输出一个数字在内存中呈现的二进制数值。
其中有一些知识点需要注意:
1.sizeof(num)
用于获得num
在内存中占用的字节数
2.<<
是二进制位左移操作
num<<1 --相当于-- num*2 num<<2 --相当于-- num*2*2 num<<n --相当于-- num*2^n(2的n次方)
3.>>
是二进制位右移操作
num>>1 --相当于-- num/2 num>>2 --相当于-- num/(2*2) num>>n --相当于-- num/2^n(2的n次方)
4.&
是二进制位与操作,任何数与1位与都可以得到这个数二进制的最低位
8 & 1 --相当于-- 0b1000 & 0b0001 1000 0001 ------ 0001因此计算结果为 1 --相当于-- 0b0001
以下为例子:
void printBinary(int num);int main(){ int q; do { int num; printf("输入一个数\n"); scanf("%d",&num); printBinary(num); printf("按任意键继续,0退出!\n"); scanf("%d",&q); } while(q);}//打印数值对应的二进制void printBinary(int num){ // sizeof(num)<<3 --相当于-- sizeof(num)*8 int cnt=(sizeof(num)<<3)-1; for(int i=cnt;i>=0;i--) { // num>>i --相当于-- num/2^i(2的i次方) //此例中的位移只是为了进行位与运算(&)得到最低位的值 int temp=num>>i; int b=temp&1; printf("%d",b); if(i%4==0) { printf(" "); } } printf("\n");}
输出结果
输入一个数10000 0000 0000 0000 0000 0000 0000 0001 按任意键继续,0退出!1输入一个数100000 0000 0000 0000 0000 0000 0000 1010 按任意键继续,0退出!0
0 0
- 输出数字在内存中呈现的二进制数值
- 数据在内存中始终是以二进制形式存放的。数值是以补码表示的
- 数据在内存中始终是以二进制形式存放的,数值是以补码表示的
- 计算int 型数值在内存中二进制1的个数
- 获得一个数据在内存中存储的二进制形式
- float在内存中二进制的存储原理
- 数值的二进制输出
- 数值的二进制输出
- 各类数据的精度、数值范围和在内存中所占的字节数。
- 关于浮点型float数值是怎样在内存中存储的
- C++中cout如何输出数值的二进制格式?
- 求int型数据在内存中存储时1的个数 (十进制转二进制)
- 整数和小数在内存中二进制表示
- python 文件输出与重定向 ,输出的内容会在内存中暂存,不会立刻输出到文件中
- OJ------求int型数据在内存中存储时1的个数(二进制数中1的个数)
- 程序在内存中运行的奥秘
- 程序在内存中运行的奥秘
- 在内存中我知道的
- Keepalived 安装与配置
- 关于IF判断的问题(一个有趣的事情)(分支-08. 高速公路超速处罚(15))
- hdu 1024 最大M子段和
- jquery的slideUp、slideDown函数在IE中bug解决办法
- 习题10-3 角度和正方形 UVa1643
- 输出数字在内存中呈现的二进制数值
- 在CentOS 6.3 64bit上安装Apache Trafficserver 4.2.3挂载SAS硬盘和SSD
- HDU3460——Ancient Printer
- 单纯形解线性规划
- css3新增的弹性盒子模型
- Animation动画效果的实现
- SVN项目管理:分支库与合并库
- cf-535C Tavas and Pashmaks
- mysql主从