计算机中实现10进制转换成二进制c编程
- 方法1(代码附上,暂时未行通,有兴趣可以修改一下)
- #include <stdio.h>
int dectobe(int n)
{int temp=n;int k=1;int result=0;int i;while(temp){i=temp%2;result=k*i+result;k=k*10;temp=n/2;printf("%d\n",result);}printf("%d\n",result);return result;
}int main(int argc, char const *argv[])
{int n=15;int result;//printf("input number\n");//scanf("%d",&n);//getchar();result=dectobe(n);printf("%d\n",result );return 0;
}
算法分析:
在实现模2取余后需要逆序输出,这个地方通过不断乘以10来实现后一位比前一位的位数多10,不需要再通过数组或者逆序函数来实现。
- 方法2
#include <stdio.h>void dectobe(int n)
{int i=0;int a[32]={0};while(n){a[i++]=n%2;n/=2;}for(i = i-1; i >=0; i--)//注意不要重复定义i的类型{printf("%d",a[i]);//%d后不要加\n换行符,不然每一个二进制位都会换行if(i%4==0) //为了美观,四个二进制空一个空格printf(" ");}printf("\n");
}int main(int argc, char const *argv[])
{int n;printf("input number\n");scanf("%d",&n);//getchar();吃掉垃圾字符是用于吃掉上次使用留下的回车。如果接下来还有一个scanf函数,在函数前用getchar吃掉,或者用%*c抑制符。对于int类型的无需吃掉,char类型的要吃掉。dectobe(n);return 0;
}
//2013年华为c语言上机试题2
//计算一个整数二进制表达式中0的个数
- 方法1
#include <stdio.h>int count(int n)
{int count=0;while(n){n/=2;count++;}return (count-1);//count++之后多加了一个,要减去
}int main(int argc, char const *argv[])
{int n;printf("input number\n");scanf("%d",&n);printf("%d\n",count(n));return 0;
}
- 方法2
- 先说一下scanf的返回值
scanf函数返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
如:scanf("%d %d",&a,&b);函数返回值为int型。如果a和b都被成功读入,那么scanf的返回值就是2;如果只有a被成功读入,返回值为1;如果a和b都未被成功读入,返回值为0;如果遇到错误或遇到end of file,返回值为EOF。end of file为Ctrl+z 或者Ctrl+d。
#include<stdio.h>//计算整数中0的个数,下面的方法用移位的操作,更加简单一些
/*void numzero(int k, int*zeronum)
{int i;int remin;int inter;(*zeronum) = 0;i = k;inter = i / 2;remin = i % 2;while(inter){if(remin == 0){(*zeronum)++;}remin = inter % 2;inter = inter / 2;}
}*/void numzero(int k, int*zeronum)
{(*zeronum) = 0;while(k != 0){if((k & 1) == 0){(*zeronum)++;}k >>= 1;}
}
void main()
{int i;int temp;int num = 0;printf("请输入一个整数\n");temp = scanf("%d", &i);while(temp == 1){numzero(i, &num);printf("%d的二进制数中0的个数为%d\n", i, num);printf("请输入下一个整数,输入其它字符结束\n");temp = scanf("%d", &i);}
}
计算机中实现10进制转换成二进制c编程相关推荐
- 10进制转换成16进制
更新中......... 任意2-36进制数转化为10进制数. 建议自己写函数,代码如下: int Atoi(string s,int radix) //s是给定的radix进制字符串 {int an ...
- 试解PTA《20211122-函数基础练习》,涉及 高精度加法 和 10进制转换成2-16进制问题,有需要的同学来看看吧;
目录 一.前言 二.例题部分 2.1.进制转换 2.1.1.题解1 2.1.2.题解2 2.2. 函数返回一个整数的反序数 (20 分) 2.2.2 题解 2.3. 大整数A+B (10 分) 2.3 ...
- 10进制转换成其他进制-短除法
将10进制下的n转换成b进制下的数. 代码如下: char get(int x) {if (x<=9) return x+'0';return x-10+'A'; }string base(in ...
- 10进制转换成2进制,新手制作,欢迎点评。
/* 输入一个整数,要求输出对应的二进制形式,请用递归函数实现. 提示 1:二进制整数转换为二进制的方法--除 2 取余,由后到 将余数"串"起来,即为对应的二进制.如右图,38 ...
- 10进制转16进制 java_Java中将10进制转换成16进制
import java.util.Scanner; public class Decimal2HexConversion { public static void main(String[] args ...
- c语言编写10进制转换成2进制,c语言位域实现10进制转换成2进制
摘自[<C语言开发技术详解>戴建华 等编著 :电子工业出版社]有改动 #include "stdafx.h" #include #include struct byte ...
- delphi10进制转换成16进制
delphi中有直接把10进制转换成16进制的函数: function IntToHex(Value: Integer; Digits: Integer): string; o ...
- C# .NET 16进制转换,10进制转换,8进制转换,2进制转换
C# .NET 16进制转换,10进制转换,8进制转换,2进制转换 介绍: 16进制:外文名"Hexadecimal"简写 hex: 大多时候以"H"表示 10 ...
- java的代码之进制转换(2,8,16与10进制转换)
文章目录 一.2,8,16进制转换成10进制 二.10进制转换成2,8,16进制返回STRING 三.自己写的十进制转换成十六进制 一.2,8,16进制转换成10进制 使用Integer.parseI ...
最新文章
- windows下常用命令
- 【C++ 语言】Visual Studio 配置 FFMPEG 开发环境 ( VS2019 CMake 环境安装 | 下载 FFMPEG 开发包 | 配置 FFMPEG )
- Win2008 r2 iis7/iis7.5系统下HTTP重定向(301重定向)图文方法
- java面试题大合集(开发者必看一)
- 实际部署遇到的一些问题
- nodejs --inspect-brk结合Chrome开发者工具的调试
- 十二个 ASP.NET Core 例子
- Logstash配置语法
- 研究了EXCEL的行高问题
- cmakelists语法_cmake使用教程(六)-蛋疼的语法
- WinRunner介绍
- java中map、list转json
- zoom下载官网android最新,Zoom手机版app下载安装包-Zoom手机版安卓软件下载v5.0-后壳下载...
- 节理玫瑰花图怎么画_什么软件能便捷地绘制出节理玫瑰花图、水系玫瑰花图?...
- Centos7下安装yasm详细步骤
- h5破解网站图片防盗链
- 基于RTEMS的阿波罗STM32F429开发板(正点原子)适配
- uni.showToast() 提示
- matlab画无坐标双曲正割形状并填充颜色
- Keil uVision5 MDK(ARM)软件的介绍、下载、安装与注册