把01000000转化成10进制数为多少怎么转化

m_leaner 2004-04-09 01:15:56
如题目
...全文
517 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
keke1 2004-04-10
  • 打赏
  • 举报
回复
#include<stdio.h>
void main()
{
int sum=0;
char *p="00000010"; /*倒过来写*/
while(*p!='\0') sum=(sum<<1)+*(p++)-'0';
printf("sum");
}

UVWSYZ 2004-04-09
  • 打赏
  • 举报
回复
你看是2进制,还是别的,
看书,这没那样麻烦
bshaozi 2004-04-09
  • 打赏
  • 举报
回复
long int f(int a[],int n)
{
long int b=0;

for(int i=0;i<n;i++)
{long int c=1;
for(int j=0;j<n-i-1;j++)
{
c=2*c;//几进制就乘几;
}

b=b+a[i]*c;
}
return b;
}

void main()
{
int a[8]={0,1,0,0,0,0,0,0};
cout<<f(a,8);
}
已经经过测试;
通过这个算法就能得出结果~~
无论是2—16的多少进制~
柯本 2004-04-09
  • 打赏
  • 举报
回复
to : antijpn(antijpn)
你说的有道理,不过如果是8进制的话就不用转了
#include <stdio.h>
int main()
{
int x=01000000;
printf("%d\n",x);
}
结果为262144(当然要32位编译器才行,否则为0)
BuW 2004-04-09
  • 打赏
  • 举报
回复
是要结果还是算法?
bshaozi 2004-04-09
  • 打赏
  • 举报
回复
long int f(int a[],int n)
{
long int b=0;

for(int i=0;i<n;i++)
{long int c=1;
for(int j=0;j<n-i-1;j++)
{
c=2*c;//几进制就乘几;
}

b=b+a[i]*c;
}
return b;
}

void main()
{
int a[8]={0,1,0,0,0,0,0,0};
cout<<f(a,8);
}
已经经过测试;
antijpn 2004-04-09
  • 打赏
  • 举报
回复
没有一个答案是正确的!


这个是8进制!因为它以0开头,所以应该正确的值是8^6才对,在数值上和1<<18相等
ajsword 2004-04-09
  • 打赏
  • 举报
回复
strtol( "01000000", NULL, 2 )
代码之诗 2004-04-09
  • 打赏
  • 举报
回复
晕,上面打错,是 strtoul
代码之诗 2004-04-09
  • 打赏
  • 举报
回复
strul 是从字符串转 unsigned long,可以指定进制,就是说,可以指定字符串是2 到 16 进制的任何一种。
KingI 2004-04-09
  • 打赏
  • 举报
回复
strtul()是什么函数?
ymbymb 2004-04-09
  • 打赏
  • 举报
回复
long num = strtul("01000000", NULL, 2);
柯本 2004-04-09
  • 打赏
  • 举报
回复
我倒,简单问题复杂化,C/C++有标准的函数可转

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
char *string = "01000000", *endptr;
long lnumber;

/* strtol converts string to long integer */
lnumber = strtol(string, &endptr, 2);
printf("string = %s long = %ld\n", string, lnumber);

return 0;
}
milefo 2004-04-09
  • 打赏
  • 举报
回复
bin_a[]={0,1,0,0,0,0,0,0};
for(int i=0;i<8;i++)
{
dec_a = dec_a<<1 + bin_a[i];
}
试试!

rowdy 2004-04-09
  • 打赏
  • 举报
回复
这个也问????????
weixiaohua 2004-04-09
  • 打赏
  • 举报
回复
//我用Delphi写的二进制转十进制的代码!
procedure TForm1.Button1Click(Sender: TObject);
var
i, Max: Integer;
Num, Num1: Integer;
begin
Max := 1;
Num := Length(Edit1.Text) - 1;
if Num <= 1 then
Max := 1
else
for i := 1 to num do
Max := Max * 2;
for i := 1 to Length(Edit1.text) do
begin
Num := StrToInt(Copy(Edit1.Text, i , 1));
if i = 1 then
num := Num * Max
else
begin
Max := Max div 2;
num := Num * Max;
end;
ListBox1.Clear;
ListBox1.Items.Add(IntToStr(Num));
num1 := Num1 + num;
end;
Edit1.Text := IntToStr(num1);
end;
RookieStar 2004-04-09
  • 打赏
  • 举报
回复
不好意思打错了:
n
__
d = > Ai*(2^i) d是十进制数,Ai是二进制数列的项
|--
0
RookieStar 2004-04-09
  • 打赏
  • 举报
回复
一个最基本的公式:
二进制数数列An : An An-1 An-2 ... A1 A0
n
__
An = > ai*(2^i)
--
0

(那个符号是西格玛,2^i表示2的i次方)

下面就是按照公式写代码了,easy!

moswawa 2004-04-09
  • 打赏
  • 举报
回复
#include "stdio.h"
#include "stdlib.h"
void main()
{
char *p, str[] = {'0', '1', '0', '0', '0', '0', '0', '0', 0x00};
int a;
a = 0;
p = str;
while(*p){
a = a * 2 + (*p - '0');
p++;
}
printf("%d", a);
}
moswawa 2004-04-09
  • 打赏
  • 举报
回复
64,

69,380

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧