为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

C语言二进制转十进制

2017-09-24 4页 doc 15KB 41阅读

用户头像

is_219945

暂无简介

举报
C语言二进制转十进制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 = ...
C语言二进制转十进制
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() 函数由系统给出,用作输入字符数组,对应字符串 (temp); gets ("You input a string is %s. \n", temp); printf //判断是否有内容输入 //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次方 (2,i); results += (temp[i] - '0') * pow } 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=green; Printf(“%d,%d”,c1,c2); A.2,3 b。1,2 c。1,1 d。-1,0 解:选择A。Int 是定义的一个枚举(去查看相关枚举的API文档),当枚举中的值给出的元素未赋初值时,枚举中的值由0开始,也就是枚举中第一个元素的值是0.(black的值为0),当枚举中的元素 赋有初值后,枚举中的元素值有赋有值的开始,比如Int中的元素black的值等于1时,red等于2,green等于3,blue等于4。如果未赋初值也就是说这里的Int中的black没有等于1,那么black的值就等于0 ,red等于1,green等于2,blue等于3。 Int {black=1,red,green,blue};中分别个元素的值依次为:1,2,3,4。 Int {black,red,green,blue};中分别个元素的值依次为:0,1,2,3
/
本文档为【C语言二进制转十进制】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索