printf c num 0 1 0-for里面的printf是怎么执行的

问题描述

for里面的printf是怎么执行的

/*把一个十进制数以二进制输出*/
#include

int main(void)
{
const int bit = sizeof(int) * 8; //判断整型有多少位
unsigned int bak = 1 << bit-1; //一个数只有第一位为1,其余全为0
int num;
int i;

printf("请输入一个数:");
scanf("%d", &num);

for(i = 1; i <= bit; ++i)
{
/*  if(num & bak)        //相与的结果只有0或者不是0,不是0则输出字符1
    {
        printf("%c", '1');
    }
    else
    {
        printf("%c", '0');
    }
    bak = bak >> 1;      //每一次把bak右移一位
*/
    printf("%c", num < 0 ? '1' : '0');
    num <<= 1;
}
printf("n");

return 0;

}

解决方案

10进制转2进制,
每次除以2,输出余数,将余数反过来就是结果,举例:
123
123 % 2 = 1
123 /2 = 61
61 % 2 = 1
61 / 2 = 30
30 % 2 = 0
30 / 2 = 15
15 % 2 = 1
15 / 2 = 7
7 % 2 = 1
7 / 2 = 3
3 % 2 = 1
3 / 2 = 1
1 % 2 = 1
1 / 2 = 0
所以结果(从下往上列出余数)1111011

解决方案二:

void print_2(int val2)
{
unsigned char p = (unsigned char)&val2 + 3; //从低位到高位,低端字节计算机
for(int k = 0; k <= 3; k++)
{
int val2 = *(p-k);
for (int i = 7; i >= 0; i--)
{
if(val2 & (1 << i))
printf("1");
else
printf("0");
}
printf(" ");
}
}

解决方案三:

printf("%c", num < 0 ? '1' : '0'); 表示如果num<0就输出字符'1',否则就输出字符'2'

解决方案四:

打错了 是表示如果num<0就输出字符'1',否则就输出字符'0'

解决方案五:

回车表示从缓存中提交数据到程序,空格只是隔开数据。你输入3,空格,此时数据并没提交到程序中,3还在缓存中,所以不执行printf。

解决方案六:

这是一个十进制转二进制的经典例子

老曹的答案太牛了,赞一下

解决方案七:

scanf("%d", &num);改成scanf("%s", &num);
int i= strlen(num);
int x = atoi(num);
printf("%o", x);

解决方案八:

61 / 2 = 30
30 % 2 = 0
30 / 2 = 15
15 % 2 = 1
15 / 2 = 7
7 % 2 = 1
7 / 2 = 3
3 % 2 = 1

时间: 2024-10-29 01:29:12

printf c num 0 1 0-for里面的printf是怎么执行的的相关文章

get语句里面的if语句不执行(C#),不能读取别的类中函数

问题描述 get语句里面的if语句不执行(C#),不能读取别的类中函数 在一个用户控件类里面,开头定义了private static bool ini = false; 类里面写了下面的函数 bool ICommand.Enabled { get { if (ini == false) { initCmbTarget();//后面写的一个函数,在函数的开顶让ini=true } //this.Enabled = 数据检查.StartEditCmd.EditStatus; //return 数据检

js里面的php代码不执行是怎么回事啊

问题描述 js里面的php代码不执行是怎么回事啊 我在js代码里的if语句下面加<?php?>标签就不执行是为什么啊 解决方案 php代码必须在模版文件中,不能放在单独的js文件中,看你是否使用外部引用js 解决方案二: 放js文件里面还是php页面里面的script 加载的js代码块? 放js文件里面php代码块没编译执行会导致js语法错误,script没问题 解决方案三: @showbo我的整个文件是php文件,里面有HTML和js代码,我在js里面的if判断里想加点php代码的,php就

不胜感激!-mybatis collection关联的时候,collection里面的sql一直不执行

问题描述 mybatis collection关联的时候,collection里面的sql一直不执行 <select id="findGrade" parameterType="int" resultMap="test"> select * from grade where id=#{id} </select> <resultMap id="test" type="com.hs.Enti

javascript-onclick事件里套click方法的执行次数

问题描述 onclick事件里套click方法的执行次数 今天看到一段点击可以来回切换内容的代码: 是onclick事件里面套click(),然后用off()移除click: 代码如下: 然后就想知道它的执行顺序是怎么样的就写了一个如下的方法: 放在button的onclick事件里,第一次点击输出11:第二次输出11. aaaaX2:第三次输出11.aaaaX3:为什么里面的click被重复执行了? 解决方案 下面click那个不是执行代码,而是把你个匿名函数(输出aaaa)附加到click事

用fscanf()函数怎样将$GS_FKJ[0,2] = 54中[]里的0,2分别取出来

问题描述 用fscanf()函数怎样将$GS_FKJ[0,2] = 54中[]里的0,2分别取出来 并保存在两个Int型变量里?? 求各位大神指点!!!万分感谢!!!! 解决方案 还是用字符查找来定位,然后取子字符/字符串的方法可靠一些. 解决方案二: 读取字符串,然后字符串查找,正则表达式匹配,这几种方法 解决方案三: 按行读出字符串,用sscanf处理. %*[^[]指忽略[之前的字符串. sscanf("$GS_FKJ[0,2] = 54", "%*[^[][%d,%d

vc++-在VC++6.0操作access2003程序里换成操作access2007

问题描述 在VC++6.0操作access2003程序里换成操作access2007 用VC和数据库access2003编好的程序中把数据库换成access2007需要修改哪些内容呢?新手求助高手 解决方案 主要是导入新的access类库,然后再编译,有没有错误,再修改 解决方案二: 只要数据源和名称和操作没有变化,就没有太大的变化. 还是你自己调试一下,然后有具体的问题再来提. 解决方案三: 如果用的是oledb的话,只需要更改driver格式就可以了,2000-2003用的是mdb,2007

环信3.0里面的EaseUI 地图显示问题

问题描述 3.0的EaseUI 的聊天,发送位置,打开的地图是白屏,怎么解决?或者大概什么原因? 解决方案 我知道了.EaseUI 里面的Jlib文件不全.创建其他的,把armeabi里面的东西复制进去就好了.

ASP.NET1.0/2.0里用DIV层元素弹出窗体

asp.net 本文 Bilal Haidar 将带领您如何使用DIV元素来创建弹出的窗体,这种弹出即可以包含简单的HTML元素也可以包含ASP.NET服务器控件,而且在实现过程中没有使用传统的window函数和showModalDialog / showModelessDialog函数(传统的我们使用 window.open,或者showModalDialog 这样的函数来制作弹出窗口--天天注释) 最近我在用ASP.NET1.1技术来开发一个窗体,该窗体包含由三个控件组成的一个面板集合,这个

ASP.NET 1.0/2.0里用DIV层元素弹出窗体

本文 Bilal Haidar 将带领您如何使用DIV元素来创建弹出的窗体,这种弹出即可以包含简单的HTML元素也可以包含ASP.NET服务器控件,而且在实现过程中没有使用传统的window函数和showModalDialog / showModelessDialog函数(传统的我们使用 window.open,或者showModalDialog 这样的函数来制作弹出窗口--天天注释) 最近我在用ASP.NET1.1技术来开发一个窗体,该窗体包含由三个控件组成的一个面板集合,这个面板用来显示系统