问答题

请编写一个函数fun(char*num),该函数返回与传入的二进制数相应的十进制数,参数num指向存放8位二进制数的字符数组。二进制数转换为十进制数的方法是将二进制数的每一位乘以该位的权然后相加,如二进制数10010100=1*27+0*26 +0*25+1*24+0*23+1*22+0*21+2*0=148。
注意:部分源程序已存在文件test32_2.cpp中。
请勿修改主函数main和其他函数中的任何内容,仅在函数fun的花括号中填写若干语句。
文件test32_2.cpp的内容如下:
#include<iostream.h>
int fun(char *num)


void main ( )

char num[8],ch;
cout<<"Enter an 8 bit binary number";
for(int i=0;i<8;i++)

cin>>ch;
num[i]=ch;

cout<<fun(num)<<end1;

【参考答案】


int fun(char *num)
{
int result=0;
in......

(↓↓↓ 点击下方‘点击查看答案’看完整答案、解析 ↓↓↓)
热门 试题

问答题
使用VC6打开考生文件夹下的工程test32_3。此工程包含一个test32_3.cpp,其中定义了复数类complex,但该类的定义并不完整。请按要求完成下列操作,将程序补充完整。 (1)定义复数类complex的私有数据成员real和image,用来分别表示复数的实部和虚部,它们都是double型的数据。请在注释“ **1**”之后添加适当的语句。 (2)添加复数类complex的带一个参数的构造函数,分别将real和image赋值为参数r的值和0.0,请在注释“ **2**”之后添加适当的语句。 (3)完成复数类complex的“+”运算符重载成员函数的定义,两个复数相加是将复数的实部和虚部分别进行相加,请在注释“ **3**”之后添加适当的语句。 (4)完成复数类complex的友元函数isequal(complex *cl,complex *c2)的定义,如果复数c1与c2相等即c1与c2的实部和虚部分别相等,则返回1,否则返回0。请在注释“ **4**”之后添加适当的语句。 程序输出结果如下: 36+0i=36+0i 注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。 源程序文件test32_3.cpp清单如下: #include <iostream.h> class complex ** 1 ** public: complex()real=image=O.O; complex(double r) ** 2 ** complex operator+(const complex &c); friend bool isequal(complex *c1,complex *c2 void display(); ; complex complex::operator+(const complex &c) ** 3 ** temp.real=real+c.real; temp.image=image+c.image; return temp; bool isequal(complex *c1,complex *c2) ** 4 ** return 1; else return 0; void complex:: display() cout<<real; if (image>=0) cout<< + <<image<< i ; else if (image<0) cout<<image<< i ; void main() complex c1,c2(36.0); c1=c1+c2; c1.display(); if (isequal(&c1,&c2)) cout<< = ; else coat<< <> ; c2.display(); cout<<end1;