下载此文档

C语言二进制转十进制.doc


文档分类:IT计算机 | 页数:约3页 举报非法文档有奖
1/3
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/3 下载此文档
文档列表 文档介绍
第一题是程序设计设计一个函数 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 的 ASCI I 编码为 48, 而该程序中 temp[i] 中的值是以 cha r 类型存在的将 char 类型直接转换为 int 类型在 C 语言中则是进行 ASCII 编码的运算所以,当 temp[i] 中的值等于‘1’的时候直接转换为 int 类型后的值变为 49 , 当减去 48 时才能得到我们需要的正确 int 类型的数字 1, 相同道理程序中我们必须将 temp[i] 的值减去‘0’则是减去 48 。以下给出相应的程序,该程序使用 win-TC 编写测试通过。#include "" //需要导入 文件 文件是用作数学运算的系统提供的类库文件#include "" 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; //

C语言二进制转十进制 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数3
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xxj16588
  • 文件大小0 KB
  • 时间2016-06-05
最近更新