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语言打印一个整数的二进制形式的更多相关文章

  1. python3中浮点数相减问题(大部分时候只需要关注整数的二进制形式就行了)

    首先直接上判断方法:一切判断直接将整数部分装化成二进制,如果位数相等则相减后的值是等于的,如果不相等,相减大的结果一定不等于你要比较的结果. 如66.6-60.6==6.0的情况,66.6的二进制:1 ...

  2. C语言输入一个整数转化为字符串

    将数字转化为对应的字符,可以通过n%10+48来实现,也可以通过n%10+'0'来实现,因为‘0’的ASCII码的数值就是48 因为字符串‘0’ 对应的10进制 整数是48 字符串'9'对应的10进制 ...

  3. 73 [面试题]交换一个整数的二进制表示的奇偶位(swapOddEvenBits)

    [本文链接] http://www.cnblogs.com/hellogiser/p/swap-odd-even-bits.html [分析] 假定一个数字是8位数,设为ABCDEFGH ABCDEF ...

  4. 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) ...

  5. C++快速输出一个整数的二进制表示(不用写函数)

    如果要输出int型的整数x,代码为: cout << bitset<>(x) << endl; 如果要输出long long型的整数x,代码为: cout < ...

  6. 用c语言打印一个三角形

    #define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stdlib.h&g ...

  7. C++ 一个整数的二进制表示中1的个数

    想知道某一位是否为1,只需和当前位对应的2的幂进行按位与运算即可. 如下示例,可以知道第6位是1,同理可知其他位是否为1,累加就能得到1的个数: 10001001 00000000 int cnt = ...

  8. 【Leetcode】2的幂(整数的二进制形式,与运算)

    class Solution { public: bool isPowerOfTwo(int n) { ) return false; )) == ; } }; 注: 1) 2的幂函数,其y值大于0: ...

  9. java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

    package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...

随机推荐

  1. mongodb的分布式集群(2、副本集)

    概述        副本集是主从复制的一种,是一种自带故障转移功能的主从复制.攻克了上述主从复制的缺点.实现主server发生问题后.不需人为介入.系统自己主动从新选举一个新的主server的功能. ...

  2. EntityFramework:EF Migrations Command Reference

    Entity Framework Migrations are handled from the package manager console in Visual Studio. The usage ...

  3. 神经网络可以拟合任意函数的视觉证明A visual proof that neural nets can compute any function

    One of the most striking facts about neural networks is that they can compute any function at all. T ...

  4. C语言宏定义和宏定义函数

    要写好C语言,漂亮的宏定义是非常重要的.宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等. 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定 ...

  5. OpenGL: 你不知道的左右手坐标系

    左右手坐标系 众所周知,OpenGL使用的是右手坐标系,而Direct3D使用的是左手坐标系. 除了上面Z轴的方向不一样外,左右手坐标系的还有其他区别: 正向旋转方向:在左手系中用Left-Hand ...

  6. Orchard运用 - 为评论启用Gravatar头像

    在前一篇随笔中我曾分享如何为Orchard特定主题添加独立代码文件, 今儿延续如何把对应代码应用到Views上. 对此我不妨把为评论启用Gravatar头像这一例子来实现.其实很简单, 思路大概就是创 ...

  7. TensorFlow目标检测(object_detection)api使用

    https://github.com/tensorflow/models/tree/master/research/object_detection 深度学习目标检测模型全面综述:Faster R-C ...

  8. iFrame的妙用

    (作者: Glen,返利网资深工程师,曾在EA等公司任职) 最近工作有个在项目-布兜收藏夹.简言之就是将喜欢的图片收藏到布兜页面上来,这其中用到了很多关于iframe的方面,总结如下: 1. 作为弹出 ...

  9. linux CentOS7 修改系统时间

    linux在安装的时候如果时区选择错误,可以在系统安装完成之后修改.系统时间运行着也会有偏差,需要对时间进行实时同步,方法如下: 打开terminal 首先转到root权限 :并输入密码 然后输入:t ...

  10. 移动端的emoji表情符号插入MySQL数据库失败

    插入数据时候报了错:### Error updating database. Cause: Java.sql.SQLException: Incorrect string value: ‘\xF0\x ...