如何把 字符串形式的的十进制数据 转换成 二进制

作者&投稿:祢洁 (若有异议请与网页底部的电邮联系)
c语言如何把一个字符串格式的二进制数转化为整数型的十进制数?~

首先要说,在计算机里面不存在十进制数。我们看到的输出的十进制数,其实是C编译器把真正的二进制数的数值以十进制形式显示在屏幕上。如果说计算机里面有十进制数的话,那么BCD数可以算是一种形式的十进制数。
而题目中的字符串格式的二进制数,也就是一串的'0','1'字符;转化为整数型其实就是求得其实际数值,最后以十进制形式输出。
#include
int main()
{
long int m;
char c0[50],*c ;
while(scanf("%s",c0)!=EOF){
m = 0;c=c0;
while(*c)
m += (m + *(c++)-'0');
printf("%d
",m);
}
return 0;
}

如果表达小于2^31-1的正数代码如下:
public void binaryToDecimal(int n){
int t = 0; //用来记录位数
int bin = 0; //用来记录最后的二进制数
int r = 0; //用来存储余数
while(n != 0){
r = n % 2;
n = n / 2;
bin += r * Math().pow(10,t);
t++;
}
System.out.println(bin);
}
使用字符串的拼接(+)来实现大于2^31-1的数,代码如下:
public void binaryToDecimal(int n){
String str = "";
while(n!=0){
str = n%2+str;
n = n/2;
}
System.out.println(str);
}
可以右移后再与0x01进行&运算 得到第一位的数字判断判断它的第几位上是0,第几位上是1,代码如下:
class ByteMove
{
public static void main(String[] args)
{
int i = 7;
move(i);
}

static void move(int num){
for(int i= 0;i<6;i++){
System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));
}
}
}

扩展资料:在windows下编译java文件、执行:
1、先创建一个txt,更改为test.java。

2、编写代码,为输出为holloword。

3、找到cmd,并进行打开cmd。

4、编译java文件,输入命令为javac test.java。

5、如果没有报错,查看当前目录下是否有class文件产生。

6、执行class文件,在命令输入java test,输出为holloword。

#include<stdio.h>
void dec2bin(int n)
{if(n>1)dec2bin(n/2);
 printf("%d",n%2);
}
int main()
{char n[15];
 int i,x;
 scanf("%s",n);
 for(i=x=0;n[i];i++)
   x=x*10+n[i]-'0';
 dec2bin(x);
 return 0;
}


通过格式操作使任意类型的数据转换成一个字符串




芦溪县19820807606: C语言如何将一个数字组成的字符串转变成十进制数 -
权真金固: 办法很多,提供三种供参考. 一、直接使用库函数atoi将数字字符串转换成十进制整数.代码如下: #include "stdio.h" #include "stdlib.h"//调用库函数atoi要包含这个文件 int main(int argc,char *argv[]){char a[]="478167831";printf("%d\n",...

芦溪县19820807606: 用c语言编程:将一个8进制的字符串转化为十进制的数. -
权真金固: #include <stdio.h> #include <string.h>int main() {int l,i,num=1,sum=0;char a[100];puts("input(以大写字母为标准):");gets(a);l=strlen(a);for(i=1;i<=l;++i){if(a[l-i]>'7'||a[l-i]<'0'){puts("输入有误");exit(0);}sum=sum+(a[l-i]-'0')*num;num*=8;}printf("%d\n",sum); }

芦溪县19820807606: 如何把一个十六进制的字符串转换成十进制的数值 -
权真金固: 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方; 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)=13 e(E)=14 f(F)=15 所以CE=12*16^1+14*16^0=192+14=206

芦溪县19820807606: 怎么把一个字符串转换成10进制或者16进制 -
权真金固: 你装一个UltraEdit,然后新建一个文件,转换为十六进制模式,在左边的地方输入上面的16进制字符,如果是ASCII码,右边区域立刻显示,如果是汉字,切换回10进制模式才可以显示.

芦溪县19820807606: java中怎么把字符串解析成10进制数 -
权真金固: java.lang.Integer中有一个方法:valueOf(String s,int radix),其中s为传入的参数,radix为要将这个字符串中每一个数将被识别成什么进制的数,不过无论字符串中的每一位被是识别成什么都不重要,结果是它都转换成了10进制数.比如:定义一...

芦溪县19820807606: 用C语言将16进制数转化为10进制数 16进制数以字符串形式输入 最好运用数组 谢谢 -
权真金固: 用itoa函数(需要stdlib.h头文件),假如要把a存进字符数组str[]中,则这样操作itoa(a, str, 16).第三个参数是进制数. 如果你要用代码实现,那我就写个函数给你吧: #include <stdio.h> const char HexNum[] = "0123456789ABCDEF";void ...

芦溪县19820807606: 如何将16进制字符串转化成10进制输出 -
权真金固: 算法:用变量a存放转换结果,赋初值为0 逐一取得字符串每个字符:从头一直取字符,直到遇到0为止 每取得一个字符:-变量a自乘16-判断字符是否数字字符,如果是数字字符则直接转换成数值-否则,判断字符是否小写字母a~f,如果是转成...

芦溪县19820807606: 输入一个十进制的数,要求转化成十进制的每个字母组成的字符串形式输出. -
权真金固: 这个简单啊string str; char* change(int num) { while(0 < num/10) { int yu= num%10; str.append(yu); num = num/10; } //反转 str.reverse(); }得到的str就是字符串的值拉

芦溪县19820807606: 如何将串口读取的十六进制字符串转换成十进制数值 -
权真金固: sscanf_s char *str = "FFFF"; // 接收到的16进制字符串 DWORD hex=0; sscanf_s(str, "%X", &hex, 4); // 4为hex的长度 int dec = hex; printf("dec:%d\n",dec); // dec为10进制数 msdn: https://msdn.microsoft.com/en-us/library/t6z7bya3.aspx

芦溪县19820807606: 怎样把十六进制字符串转换成十进制数值 -
权真金固: 对16进制的每一位,将其与对应的权(16 ^n)相乘,再累加起来.如:FF=15*16+15=255

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