- 14
- 0
- 约2.42千字
- 约 3页
- 2017-06-07 发布于重庆
- 举报
C语言二进制转十进制
第一题是程序设计
设计一个函数fun,该函数的功能为将用户输入的二进制转换为十进制,比如111111则输出255,该程序最多只能接受32位长的字符。并且显示字符串s
解:2进制转换10进制在C语言中没有提供相应的方法,需要根据自己的实际情况写出相应的计算方法。二进制转换十进制有个通用公式,(1或0)*2^0(次方)+ (1或0)*2^1(次方)+……(1或0)*2^N(次方)比如:二进制1010转换十进制 == (1*2^0)+(0*2^1)+(1*2^2)+(0*2^3) = 1+0+4+0 = 5。通过这个通用公式,将二进制转换成为十进制。下列程序中results += (temp[i] - 0) * pow(2,i);则是使用到上面相应的公式。temp[i]-‘0’需要特别注意,因为在C语言中没有将字符char类型转换为int类型的方法,相应的转换需要自行运算,而在该程序中temp[i]-‘0’则是将char转换为int 的方法。因为在c语言中0的ASCII编码为48,而该程序中temp[i]中的值是以char类型存在的将char类型直接转换为int类型在C语言中则是进行ASCII编码的运算所以,当temp[i]中的值等于‘1’的时候直接转换为int类型后的值变为49,当减去48时才能得到我们需要的正确int类型的数字1,相同道理程序中我们必须将temp[i]的值减去‘0’则是减去48。以下给出相应的程序,该程序使用win-TC编写测试通过。
#include stdio.h
//需要导入math.h文件 math.h文件是用作数学运算的系统提供的类库文件
#include math.h
main()
{
//声明相应变量,isTrue用作记录是否退出程序“y”退出“n“继续
//temp[32]用作记录用户输入字符串
char isTrue,temp[32];
//运用do-while 循环控制是否继续,当运算正确后程序自动退出
do
{
printf(Please input a string.\n);
//gets() 函数由系统给出,用作输入字符数组,对应字符串
gets(temp);
printf(You input a string is %s. \n, temp);
//判断是否有内容输入
//strlen()系统给出函数,用作返回数组元素个数,返回元素不回空的个数
if (strlen(temp) = 0)
{
printf(Error! input length less than 0.\n);
}
else
{
//判断输入字符是否过长,超过32位,是则重新输入
if (strlen(temp) 32)
{
printf(Error! input length than 32.\n);
//当字符串长度超过32时 isTrue等于‘y’则,重新输入
isTrue = y;
}
else
{
// 以下算法通过 二进制转换十进制公式得来
int i = 0,results = 0;
//循环得出输入字符个数,根据个数计算相应的值
for (i; i strlen(temp); i ++)
{
//将计算的值累加得到最终结果
// 注意pow(2,i)函数,该函数用作计算某个数的N次方这里计算2的i次方
results += (temp[i] - 0) * pow(2,i);
}
printf(OK! System exit. %d\n,results);
isTrue = n;
}
}
//当isTrue 等于 ‘y’的时候说明输入类容,或者计算有错,返回重新输入
}while (isTrue == y);
getch();
}
第二题是选择
Int {black=1,red,green,blue};
int c1 ,c2;
C1=red;
C2=
您可能关注的文档
最近下载
- Unit 1 Animal friends Speed up(课件)外研版(三起)(2024)英语三年级下册.pptx VIP
- 医药企业医院廉洁承诺范文.docx VIP
- 小学综合实践活动一年级下册第四单元《碗筷的摆放和收拾》课件.docx VIP
- Python少儿编程(第1-17课).pptx VIP
- 2026及未来5年中国活检针行业发展研究报告.docx
- 汽车检测诊断技术.pptx VIP
- 小学综合实践活动一年级下册第四单元《碗筷的摆放和收拾》课件.pptx VIP
- 四川省成都市第七中学2025-2026学年高一上学期11月半期考试英语(含答案).pdf
- 集成电路原理与设计之一数字教案_chap.pdf VIP
- python少儿编程课程-第6课:周而复始(for循环).pptx VIP
原创力文档

文档评论(0)