如题所述
第1个回答 2020-02-26
//---------------------------------------------------------------------------
#include
<stdio.h>
long
int
btd(char
*s)
/*将以字符串形式存储在s地址中的二进制数字转换为对应的十进制数字*/
{
long
int
rt=0;
int
i,n=0;
while
(s[n])
n++;
for
(--n,i=n;
i>=0;
i--)
rt|=(s[i]-48)<<n-i;
return
rt;
}
int
main(int
argc,
char*
argv[])
{
printf("%ld",btd("11011"));/*示例,输出11011B的十进制形式*/
return
0;
}
//---------------------------------------------------------------------------
#include
<stdio.h>
long
int
btd(char
*s)
/*将以字符串形式存储在s地址中的二进制数字转换为对应的十进制数字*/
{
long
int
rt=0;
int
i,n=0;
while
(s[n])
n++;
for
(--n,i=n;
i>=0;
i--)
rt|=(s[i]-48)<<n-i;
return
rt;
}
int
main(int
argc,
char*
argv[])
{
printf("%ld",btd("11011"));/*示例,输出11011B的十进制形式*/
return
0;
}
//---------------------------------------------------------------------------
第2个回答 2017-04-20
//---------------------------------------------------------------------------
#include <stdio.h>
long int btd(char *s) /*将以字符串形式存储在s地址中的二进制数字转换为对应的十进制数字*/
{
long int rt=0;
int i,n=0;
while (s[n]) n++;
for (--n,i=n; i>=0; i--)
rt|=(s[i]-48)<<n-i;
return rt;
}
int main(int argc, char* argv[])
{
printf("%ld",btd("11011"));/*示例,输出11011B的十进制形式*/
return 0;
}
//---------------------------------------------------------------------------本回答被提问者采纳
#include <stdio.h>
long int btd(char *s) /*将以字符串形式存储在s地址中的二进制数字转换为对应的十进制数字*/
{
long int rt=0;
int i,n=0;
while (s[n]) n++;
for (--n,i=n; i>=0; i--)
rt|=(s[i]-48)<<n-i;
return rt;
}
int main(int argc, char* argv[])
{
printf("%ld",btd("11011"));/*示例,输出11011B的十进制形式*/
return 0;
}
//---------------------------------------------------------------------------本回答被提问者采纳