一个8位二进制数,将其转换为十进制数输出的C++问题求解。。。

作者&投稿:稻帖 (若有异议请与网页底部的电邮联系)
二进制转十进制 输入一个8位二进制数,将其转换为十进制数输出。C++程序设计~

#include using namespace std;//计算x的n次方double power (double x, int n);int main(){int value = 0;cout = 0; i--) {char ch;cin >> ch;if (ch == '1')value += static_cast(power(2, i));}cout<<"output:
";cout << "Decimal value is " << value << endl;return 0;}/**********begin****************/double power (double x, int n){int i;double d=1;for(i=0;i<n;i++)d *= x ;return d;}/*********end****************/

这个其实你用算的就好了,四位二进制分别表示8421,看你二进制数是用什么表示了

/*
首先要知道2转10进制的规则:
该位数值(1或0)乘以二的该位位数位数减一次方
比如:二进制10,转10进制则是1*2^1+0*2^0
二进制110,转10进制则是1*2^2+1*2^1+0*2^0
……
这个程序中的power函数作用就是用于计算次方
解释下power函数:
power(double x,int n);
比如2的3次方,则power(2,3)返回2的3次方的值

有了这个函数的话,计算2进制转10进制就非常简单了
只需要判断8位数中的哪一位是1,是1的话就加上2的位数-1次方就可以了
比如8位二进制是11000111
则十进制value=power(2,7)+power(2,6)+power(2,2)+power(2,1)+power(2,0);
这个步骤可以用循环得到
很简单吧
*/
#include <iostream>
using namespace std;
double power(double x,int ); //声明power函数,因为power的定义在main之后,main函数要调用的话就必须先声明
void main(void)
{
int i; //用作循环的计数器
int value=0; //结果,也就是得出的十进制
char ch; //一位二进制的值
cout<<"Enter an 8 bit binary number "; //输入提示
for(i=7;i>=0;i--) //此循环完成8位二进制的输入和累加出10进制的结果
{
//输入第i位,因为i是从7开始循环,并且i--,直到0为止,所以第一次是输入二进制的第8位(i=7),以此第7位(i=6)……
cin>>ch;
if(ch=='1') //判断该位是否为1,如果为1,就用power函数计算出2^i,并累加结果
value+=int(power(2,i));
}
//输出结果
cout<<"Decimal calue is "<<value<<endl;
}
double power(double x,int n)
{
double val=1.0; //计算累乘结果
while(n--) //循环n次,每次都*x,从而达到次方的计算
val*=x; //累乘
return(val); //返回计算结果
}

#include <iostream> //C++头文件
using namespace std; //需要的名字空间,像本程序中的cout,cin
double power(double x,int ); //声明数制转换的函数
void main(void)
{
int i; //声明变量
int value=0;
char ch;
cout<<"Enter an 8 bit binary number "; //输出到屏幕显示提示字符
for(i=7;i>=0;i--) //对输入的8位数做转换
{
cin>>ch; //获取输入
if(ch=='1') //如果输入为1
value+=int(power(2,i)); //将value值加上转换后的数值,有强制类型转换,双精度转换成整型
}
cout<<"Decimal calue is "<<value<<endl; //最后输出到屏幕显示最终数值
}
double power(double x,int n) //定义函数
{
double val=1.0; //定义变量
while(n--) //用while循环判断当前位(参考2进制转10进制公式) val*=x; //在对应第n位*2^(n-1)

return(val); //返回双精度值
}

前提是知道2进制转10进制的公式:只需要明白第n位数*2^(n-1)即可。如00001000可以换成0*2^7+0*2^6+0*2^5+0*2^4+1*2^3+0*2^2+0*2^1+0*2^0=8。
比较难理解的是power函数里面的while循环和main里面for循环,只要明白公式,对应看代码,将具体数制替换变量就比较容易明白。

二进制转十进制的方法就是按权展开
比如
11111111b=1*2^0+1*2^1+1*2^2+1*2^3+1*2^4+1*2^5+1*2^6+1*2^7
=1+2+4+8+16+32+64+128
=255d
power(double x,int n)函数就是用来算x^n的值的

#include <iostream>
using namespace std;

double power(double x,int );//函数声明

int main()
{
int i;
int value=0;//十进制结果
char ch;
cout<<"Enter an 8 bit binary number ";
for(i=7;i>=0;i--)//每输入一位就按其权值加到十进制结果上
{
cin>>ch;
if(ch=='1')
value+=int(power(2,i));//加上2的i次方
}
cout<<"Decimal calue is "<<value<<endl;//输出结果
return 0;
}

double power(double x,int n)//算出x的n次方的值
{
double val=1.0;
while(n--)//n个x累乘,算出x的n次方
val*=x;
return(val);
}
不知你看懂了没,这是很简单的代码。要给分啊。

#include <iostream>
using namespace std;
double power(double x,int );
void main(void)//c++中()中是不用void的,如果不返回空着就可以了
{
int i;
int value=0;
char ch;
cout<<"Enter an 8 bit binary number ";
for(i=7;i>=0;i--)
{
cin>>ch;
if(ch=='1')
value+=int(power(2,i));
}
cout<<"Decimal calue is "<<value<<endl;
}
double power(double x,int n)
{
double val=1.0;
while(n--)//while循环是一个求2的n 次幂
val*=x;
return(val);//return val;就可以了,val是一个变量不是函数
}

这个函数不能实现将二进制转换成十进制


8位二进制数能表示的最大的无符号整数为多少?
2进制是计算机里面最基础的运算,通常由0、1二个数字组成。8位二进制一共有8个位,每个位上最多只能有0或1,所以,8位二进制最多可以表示256个数,范围是0-255,此时用8位二进制数表示的最大的无符号整数就是255。由于2进制和10进制的范围是一致的,故用8位二进制数能表示的最大的无符号整数...

8位二进制数组成1个什么?
8位二进制数组成1个字节。8位二进制数可以组成一个字节,是计算机中最基本的存储单位之一,用于存储和处理各种数据类型。计算机中的信息都是以二进制的形式进行存储和处理的,而二进制数据的单位就是位。一个位只能表示0或1,因此,8个位就可以组成一个字节。一个字节由8个二进制位组成,可以表示的...

8位二进制数最多能表示多少状态
八进制数转换成二进制数:把每一个八进制数转换成3位的二进制数,就得到一个二进制数。3、二进制缺点:用二进制表示一个数时,位数多。因此实际使用中多采用送入数字系统前用十进制,送入机器后再转换成二进制数,让数字系统进行运算,运算结束后再将二进制转换为十进制供人们阅读。

用8位无符号二进制数能表示的最大十进制数是什么?
用8位无符号二进制数能表示的最大十进制数是255。因为最大的8位无符号二进制数是11111111,所以对应的十进制数是1*2^7+1*2^6+1*2^5+1*2^4+1*2^3+1*2^2+1 *2^1+1*2^0=255。二进制数转换为十进制数的规律是:把二进制数按位权形式展开多项式和的形式,求其最后的和,就是其...

八位二进制数码在计算机中称为 为什么呢
八位二进制数码在计算机中称为一个字节。字节和位的关系:数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位。

数学计算机
数分为有符号数和无符号数。 原码、反码、补码都是有符号定点数的表示方法。 一个有符号定点数的最高位为符号位,0是正,1是副。 以下都以8位整数为例, 原码就是这个数本身的二进制形式。 例如0000001 就是+11000001 就是-1 正数的反码和补码都是和原码相同。 负数的反码是将其原码除符号位之外的各位求反...

按位与是什么意思?
按位与经常被用来从一个数字中提取某些位的值。例如,如果我们想要从一个8位二进制数中提取前4位,并将其余位设为0,我们可以使用按位与运算符将该数与一个二进制掩码(例如00001111)进行“与”操作。这将使得除前4位以外的所有位都被清空,而前4位的值则保持不变。按位与在计算机科学中的重要...

8位二进制数如何转换成为4个字节的数?
逻辑异或运算的特点是相同则为0,不同则为1,所以结果为00110100=34H 此时累加器A中的内容为34H 第四步:SWAP是高低四位数据值互换(如果是8位的话) 就是将00110100前四位与后四位互换,换完后还是01000011=43H 最后A中内容为43H 参照下面那位大哥,改过来了,要不误导人咯~~呵呵 ...

8位二进制数是多少?
例如,将十进制数-5 转换为 8 位变形补码的过程如下:-5 的二进制码为 1011,因为它是负数,所以需要先将其转换为反 码,即 0100,再将反码加 1 得到补码,即 0101。最后在补码前面 加上符号位 1,得到 8 位变形补码为 11010101。进行加法运算时,我们可以先将两个数的补码相加,再将结果的符...

8位二进制能表示几个带符号数
8位二进制所能表示的无符号整数范围为0~255;8位二进制所能表示的带符号整数范围为-128~127。无符号整数与带符号整数:一、无符号整数 无符号数(Unsigned number)是相对于有符号数而言的,指的是整个机器字长的全部二进制位均表示数值位,相当于数的绝对值。用二进制数的最高位表示符号,最高位是0...

越城区15048683721: 二进制转十进制 输入一个8位二进制数,将其转换为十进制数输出.C++程序设计 -
胡衫尤特: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31#include <iostream> usingnamespacestd;//计算x的n次方 doublepower (doublex, intn);intmain() {intvalue = 0;cout << "Enter an 8 bit binary number \n "; ...

越城区15048683721: (数制转换)输入一个8位二进制数,将其转换为十进制数输出. -
胡衫尤特: 程序:#include (iostream.h) double power(double x,int n); void main(void) {int i; int value=0; char ch; cout<<"Enter an 8 bit binary number "; //输入一个8位二进制数 for(i=7;i>=0;i--) {cin>>ch; if(ch=='1') value+=int(power(2,i)); //int强制类型转换 } ...

越城区15048683721: 将一个8位二进制数转换为10进制的单片机程序,越简单越好 -
胡衫尤特: ;51单片机汇编语言 ;入口20h一个8位二进制数 ;出口21h22h4位10进制bcd码 bcd:mov 21h,#00h mov 22h,#00h jnb 20h.7,bcd1 mov 22h,#01h mov 21h,#28h bcd1:jnb 20h.6,bcd2 mov a,#64h acall add bcd2:jnb 20h.5,bcd3 mov a,#32h acall add ...

越城区15048683721: 将8位二进制数10010101分别转换为10进制`16进制`以及8位制 -
胡衫尤特: 十进制:149 16进制:95 8进制:225

越城区15048683721: c语言怎么将八位二进制数转换成十进制数 -
胡衫尤特: 如果口算,例如一个二进制abcdefgh(这几个字母只能是1或0) 转为十进制就是 a*2的(a所在位数减1)次方,比如a是十万位的就乘以2的5次方 类推,直到各位结束 例子:1011011101=1*2^9+......+1*2^0 各个数相加的总和就是所要转为的十进制数 如果是编写程序就最简单 include<stdio.h> main() { int a;//输入一个二进制数 printf("%d",a); }

越城区15048683721: 一个简单的C++问题,输入一个8位二进制数,将其转换为十进制数输出. -
胡衫尤特: 开始定义的i是for循环中的循环节,作为判断条件使用; cin的操作在for循环中已经进行了8次了

越城区15048683721: C语言 如何将一个8位二进制的数转换为十进制数? -
胡衫尤特: 我就懒得敲了,转一个网友的回答:从最低位(最右)算起,位上的数字乘以本位的权重,权重就是2的第几位的位数减一次方.比如第2位就是2的(2-1次)方,就是2;第8位就是2的(8-1)次方是128.把所有的值加起来.2(1-1)代表2的0次方,就是1;其他类推比如二进制1101,换算成十进制就是:1*2(1-1)+0*2(2-1)+1*2(3-1)+1*2(4-1)=1+0+4+8=13

越城区15048683721: C语言算法:二转十的算法及说明(输入一个8位二进制数,将其转换为十进制数输出) -
胡衫尤特: 流程图你看着注释自己搞吧.#include "stdafx.h"#include "stdio.h"//#include "conio.h" void main(void){/*主程序*/ char nBin[9]={NULL,},i=0,rc; int nDec=0; printf("请输入二进制数!\nBin="); for(;;){ if((rc=getch())==0xD || i==9) break;//遇...

越城区15048683721: 如何将八位二进制数转化成十进制 用C编写 -
胡衫尤特: 具体代码我就不写了 先把二进制数以字符数组的方式存储起来 然后计算里面的位数 然后声明一个变量n初始化为1 将二进制的最低位乘以这个变量每次循环加上上一次的结果 每次循环结束n*2 总和也要声明一个变量...

越城区15048683721: 2进制如何变成10进制,它们是怎么换算的 -
胡衫尤特: 2进制变成10进制比较简单 比如10110 我们可先从后面算起,从低位到高位 0* 2^0 +1* 2^1 +1* 2^2 +0* 2^3 +1* 2^4 =0+2+4+0+16 =22 10进制变成2进制,要人看得好清楚一点就麻烦了

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网