文章目录
- 前言
- 一、题目讲解
- 二、分析
- 1.代码
- 2.重点算法
- 总结
前言
OK,今天讲一个简单的代码,这个代码对于程序猿来说是简单的,但是对于学习C语言的学生来说是比较复杂的,现在分享出来,和大家一起学习一下。
一、题目讲解题目要求是:
- 把一个[0-1023]范围内的整数转换成无符号二进制数
- 超过数值或者输入的是非整数则正常退出,否则循环转换
我直接把运行界面分享给大家,大家先看界面,应该知道代码的逻辑关系,或者说功能了,然后再分享代码:
1:输入的数值超过范围
如图所示,输入234,输出11101010;如果我们输入3333,则退出,因为3333超过了1023
2:输入的是字母或者不是字符
比如,输入23,输出10111,输入222,输出11011110,如果输入dc34,则退出
二、分析 1.代码代码如下(示例):
我们一起来学习一下代码:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
void decToBin(int n)//输入一个数15
{
int result = 0;//结果
int k = 1;
int i = 0;
while(n)//除到0就停止
{
i = n % 2; //余数i=1 //i=1 //i=1 //i=1
result = k * i + result; //result=1 //result=11 //result=111 //result=1111
k = k * 10; //k=10 //k=100 //k=1000
n = n / 2; //n=7 //n=3 //n=1 //n=0退出
}
printf("我们得到的二进制数为:%d n",result);//1111
}
int main() {
char s[6];
char *p;
do{
printf("请输入一个[0-1023]范围内的整数:") ;
gets(s);
p=s;
int Num=1,j=0,Num_T=0,Totle=0;
j=strlen(s);
while(*p!=' ') //输入一个整型数
{
if(*p<'9'&&*p>'0'){
for(int k=1;k=0&&Totle<1024)
decToBin(Totle);
else
exit(0);
}while(1);
}
2.重点算法
1:十进制转二进制直接代码:
while(n)//除到0就停止
{
i = n % 2; //余数i=1 //i=1 //i=1 //i=1
result = k * i + result; //result=1 //result=11 //result=111 //result=1111
k = k * 10; //k=10 //k=100 //k=1000
n = n / 2; //n=7 //n=3 //n=1 //n=0退出
}
2.把字符转换成十进制数,如果输入的不是0-9之间的字符自动退出:。
while(*p!=' ') //输入一个整型数
{
if(*p<'9'&&*p>'0'){
for(int k=1;k
3.判断如果数值在0-1023,则转换,如果不在,这里判断的是数值超过1023,就退出
if(Totle>=0&&Totle<1024)
decToBin(Totle);
else
exit(0);
总结
这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了该程序的功能和重点算法,希望大家学习是快乐的。



