c语言打印一个整数的二进制形式
printf函数没有这个功能,如果想打印一个数的二进制形式,就得自己计算。下面是我看到的最简便的算法:
#include <stdio.h>
int main(int argc, char *argv[])
{
int n=;
for(int i=;i>=;i--){
printf("%1d",n&<<i?:);
}
puts(""); return ;
}
1、如何理解 n&<<i?: ,加上括号: (n&(<<i))?:
2、因为int类型有4个字节,所以也就是32位二进制,从bit0到bit31,所以,1<<i,就是将1位移31,然后和n位与,用于将n的最高位取出,因为取出后如果为0,那么结果就是0,如果为1,结果就是一个正整数,所以这里加了一个问号表达式,来将结果变为0和1。后面的就很明了了。
3、复习一下运算符的优先级。按位与&是9级,移位是6级,问号表达式是14级,所以计算顺序是:移位>>按位与>>问号表达式。正好符合要求,所以一个括号也不用。
c语言打印一个整数的二进制形式的更多相关文章
- python3中浮点数相减问题(大部分时候只需要关注整数的二进制形式就行了)
首先直接上判断方法:一切判断直接将整数部分装化成二进制,如果位数相等则相减后的值是等于的,如果不相等,相减大的结果一定不等于你要比较的结果. 如66.6-60.6==6.0的情况,66.6的二进制:1 ...
- C语言输入一个整数转化为字符串
将数字转化为对应的字符,可以通过n%10+48来实现,也可以通过n%10+'0'来实现,因为‘0’的ASCII码的数值就是48 因为字符串‘0’ 对应的10进制 整数是48 字符串'9'对应的10进制 ...
- 73 [面试题]交换一个整数的二进制表示的奇偶位(swapOddEvenBits)
[本文链接] http://www.cnblogs.com/hellogiser/p/swap-odd-even-bits.html [分析] 假定一个数字是8位数,设为ABCDEFGH ABCDEF ...
- Ex 2_25 n位十进制整数转换为二进制形式..._第四次作业
(a) 当n=1时,(10)d=(1010)b 当n=2时,(100)d=(10)d x (10)d=(1010)b x (1010)b 当n=4时,(10000)d=(100)d x (100) ...
- C++快速输出一个整数的二进制表示(不用写函数)
如果要输出int型的整数x,代码为: cout << bitset<>(x) << endl; 如果要输出long long型的整数x,代码为: cout < ...
- 用c语言打印一个三角形
#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...
- C++ 一个整数的二进制表示中1的个数
想知道某一位是否为1,只需和当前位对应的2的幂进行按位与运算即可. 如下示例,可以知道第6位是1,同理可知其他位是否为1,累加就能得到1的个数: 10001001 00000000 int cnt = ...
- 【Leetcode】2的幂(整数的二进制形式,与运算)
class Solution { public: bool isPowerOfTwo(int n) { ) return false; )) == ; } }; 注: 1) 2的幂函数,其y值大于0: ...
- java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...
随机推荐
- 理解JavaScript中的事件流
原文地址:http://my.oschina.net/sevenhdu/blog/332014 目录[-] 事件冒泡 事件捕获 DOM事件流 当浏览器发展到第四代时(IE4和Netscape Comm ...
- ArcGIS for Android 点击选择
public void onSingleTap(float arg0, float arg1) { //selFeatureLayer.selectFeature(5); Point p = mMap ...
- node.js&pm2搭建node生产环境
node.js下载地址https://nodejs.org/en/download/stable/ 下载截图 建议采用稳定编译过的版本,source code稍麻烦,编译过的直接可用,安装超级简单,红 ...
- SharePoint 2013 本地创建解决方案
在之前的博客<SharePoint 2013本地开发解决方案以及远程调试>中,我们介绍了如何通过修改注册表,使SharePoint 2013 解决方案可以本地编辑,也提及了即使修改注册表, ...
- combogrid获取多个字段的方法
var g = $('#cc').combogrid('grid'); // 获取表格控件对象var r = g.datagrid('getSelected'); //获取表格当前选中行alert(r ...
- [android] Activity 的生命周期 以及横屏竖屏切换时 Activity 的状态变化
生命周期Android 系统在Activity 生命周期中加入一些钩子,我们可以在这些系统预留的钩子中做一些事情.例举了 7 个常用的钩子:protected void onCreate(Bundle ...
- [Android 新特性] 改进明显 Android 4.4系统新特性解析
Android 4.3发布半年之后,Android 4.4随着新一代Nexus5一起出现在了用户的面前,命名为从之前的Jelly Bean(果冻豆)换成了KitKat(奇巧).这个新系统究竟都有怎样的 ...
- RTF文件合并 备忘
多个独立的rtf文件合并时,如果文件纸张方向存在横向 纵向不一致时,文件之间需要插入分节符 \pard \ltrpar\qj \li0\ri0\nowidctlpar\wrapdefault\aspa ...
- IE6BUG汇总篇(不断更新)
1.IE6双倍边距bug 当页面内有多个连续浮动时,如本页的图标列表是采用左浮动,此时设置li的左侧margin值时,在最左侧呈现双倍情况.如外边距设置为10px, 而左侧则呈现出20px,解决它的方 ...
- HTML5 input file控件使用accept过滤限制的文件类型以及在谷歌下打开很慢的问题
在文件上传控件(input type='file')中,可以通过accept属性实现对文件类型的过滤. 一.相关代码: 下面给出对应的文件上传控件代码: <input type="fi ...