字符串转10进制数

作者&投稿:东脉 (若有异议请与网页底部的电邮联系)
java中怎么把字符串解析成10进制数~

java.lang.Integer中有一个方法:valueOf(String s,int radix),其中s为传入的参数,radix为要将这个字符串中每一个数将被识别成什么进制的数,不过无论字符串中的每一位被是识别成什么都不重要,结果是它都转换成了10进制数。比如:
定义一个字符串val s:String = "924"
再定义一个变量val z = Integer.valueOf(s,10),即可把字符串s中每一位数识别为10进制数,即‘9’就是十进制中的9,‘2’就是十进制中的2,‘4’就是10进制中的4,所以最后转换成10进制数依旧为924
但是如果将变量z定义成val z = Integer.valueOf(s,16),即可把字符串s中每一位数识别为16进制数,即‘9’就是16进制中的9,‘2’就是16进制中的2,‘4’就是16进制中的4,所以转换成10进制数为2340

atoi库函数只能将十进制字符串转化为int整形,比如下面的例子:
#include

#include
//atoi头文件

int
main(void)
{

int
n;

char
*str
=
"12345.67";


n
=
atoi(str);
//int
atoi(const
char
*nptr);

printf("string
=
%s
integer
=
%d
",
str,
n);

return
0;
}
/*输出:

string
=
12345.67
integer
=
12345

用一个sscanf函数可轻松实现,写成调用函数形势如下,也可直接把sscanf写在主程序中更精简些

#include <stdio.h>

typedef unsigned long ul;

ul htoi(const char* szHex)
{
ul temp;
sscanf(szHex, "%x", &temp);

return temp;
}

int main()
{
char szHex[16];
printf("Enter a hexadecimal string: \n");

scanf("%s", szHex);
printf("Convert this hex string to decimal number: %u\n", htoi(szHex));
}

输入1000即可

思路是ASCII码变换成十六进制码,然后把十六进制码变成BCD码就OK啦!
ASCII码是字节表示的,十六是半字节(即四位)表示的,每位ASCII减去10H,然后合并一下就成十六进制码了。十六进制变BCD码网上有源程序!

int transfer(char *str)
{
char *tp = str;
if(*tp!='0' )
return 0;
if(*(++tp)!='x')
return 0;
int output = 0;
++tp;
while(*tp<='9' && *tp>='0' &&*tp!='\0')
{
output = 16 * output + *tp;
++tp;
}
return output;
}

怎么将8进制的数转换为10进制




从数字组成的字符串如何转化为十进制数?
1、挨个读取数组,从第0位开始 2、将字符转化为数字。比如从'1'转化为1。可以参考ASCII码表,字符'0'是48,所以只需要将字符减去48即可。3、将前一个计算出的十进制数(初始化为0)乘以10加上第二步计算出的数字。4、循环1-3步直到读取完数组内所有内容。之所以这样算需要举个例子:比如数组内...

输入一个十六进制数(字符串输入),怎么才能够输出相应的十进制数?
\\x0d\\x0a循环结束。\\x0d\\x0a累加的结果就是十进制了。

怎么把一个字符串转换成10进制或者16进制
就是将字符串格式化为 16 进制数 例子:include void main(){ char p = "0x1a";int nvalude = 0;sscanf(p,"%x",&nvalude);printf("%d\\r\\n",nvalude);} 输出:26 方法2:strtol()函数名:strtol 功 能:将字符串转换为长整数 用 法:long strtol(char str,char endptr,int base);上...

java中怎么把字符串解析成10进制数
定义一个字符串val s:String = "924"再定义一个变量val z = Integer.valueOf(s,10),即可把字符串s中每一位数识别为10进制数,即‘9’就是十进制中的9,‘2’就是十进制中的2,‘4’就是10进制中的4,所以最后转换成10进制数依旧为924 但是如果将变量z定义成val z = Integer.valueOf...

...输入一个十六进制数,将其变换成一个十进制整数后输出?
从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入 FFFF 样例输出 65535 思路:感觉自己的下面两个方法都对 方案一:方案二:

输入一个八进制数字字符串,将其转换成十进制数后输出。C语言
printf("转换为十进制数为:%d\\n", decimal);return 0;} ```该代码中,首先使用 `scanf` 函数读入一个字符串。由于输入的是一个八进制数字字符串,因此可以直接使用字符数组存储。然后,使用循环遍历该字符串的每一位数字,并将其转换为十进制数。在计算过程中,将每一位数字乘以 8 的相应次幂...

...二进制数串,编写程序将其转换成对应的十进制数,并输出。
从低位至高位,第n位表示为Xn,对应10进制数D *\/\/* D = X0*R^0 + X1*R^1 + …… + X(n-1)*R^(n-1) + Xn*R^n *\/\/* 参数说明: *\/\/* char *value : 其他进制数,以字符串形式存储 *\/\/* int *result : 转换后的十进制数 *\/\/* int radix : 待转换的进制 *\/int ...

如何将16进制字符串转化成10进制输出
-将以上得到的数值加到变量a上,然后进行下一个字符的处理 例程:include<stdio.h>int h2d(char *s) { int a=0; while ( *s ) { a*=16; if ( *s>='0' && *s<='9' ) a+=*s-'0'; else if ( *s>='a' && *s<='f' ) a+=*s-'a'+10; else if (...

c语言编程 将输入的2进制字符串转换为10进制数输出
设置一个循环遍历字符串,设置一个初值为0的变量sum记录十进制数,从下标为0开始,作sum*2+该元素-'0'操作,遍历完成后sum即为所求之结果。代码如下:\/\/#include "stdafx.h"\/\/If the vc++6.0, with this line.#include "stdio.h"int main(void){ char a[]="1101001011010111000101"; ...

关于c语言编程,16进制表示的字符串转成10进制的
这个就是一个16进制数转10进制的程序 先以字符串方式逐字符读入16进制数 然后对每个读入的字符依次做判断 t=s[i]-'0' \/\/临时变量t为当前判断的字符串的ASCII码值减去字符'0'的ASCII码值,这一步的作用是将字符型转换为整型以供计算 if(t<=9) k=k*16+s[i]-'0' \/\/如果t≤9,说明原...

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

理县19242114964: 用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); }

理县19242114964: 如何将一个16进制字符串转化成10进制字符串 -
谯知纳德: 十六进制转换成十进制:要从右到左用二进制的每个数去乘以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

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

理县19242114964: 如何把某一个k进制的数化为10进制数呢?C++数的进制转换(1) 将输入的2进制数(一个非“0”即“1”的字符串)化为10进制数. 提示:用字符数组a盛... -
谯知纳德:[答案] #include #include using namespace std; void main() { char a[80]; int i,p=1,m,n=0,k; cout cin>>k; cout cin>>a; m=strlen(a); for(i=m-1;i>=0&&k!=16;i--) { n+=(a[i]-48)*p; p*=k; } if(!n) for(i=m-1;i>=0;i--) { if(a[i] if(a[i]>=65) n+=(a[i]-55)*p; p*=k; } cout}

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

理县19242114964: 以字符串形式输入一个二进制数,将其转换为一个十进制数 -
谯知纳德: #include <iostream>#include <bitset>#include <string> using namespace std; int main() { string str; cout<<"请输入二进制数:"; cin>>str; for (string::iterator it=str.begin();it!=str.end();++it) { if (*it!='0' && *it!='1') { cout<<"您输入的二进制数有误....

理县19242114964: c语言编程:将输入的2进制字符串转换为10进制数输出. -
谯知纳德: 设置一个循环遍历字符串,设置一个初值为0的变量sum记录十进制数,从下标为0开始,作sum*2+该元素-'0'操作,遍历完成后sum即为所求之结果.代码如下: //#include "stdafx.h"//if the vc++6.0, with this line. #include "stdio.h" int main(void){ char a[]="1101001011010111000101"; int i,sum; for(sum=i=0;a[i];(sum*=2)+=a[i++]-'0'); printf("the result is %d\n",sum); return 0; }

理县19242114964: 十进制字符串转换为十进制数 -
谯知纳德: // C语言提供了内置的函数//ANSI long atol(const char* _Str); int atoi(const char* _Str); __int64 atoi64(const char* _Str); long strtol(const char* _Str,char** _EndPtr,int _Radix); unsigned long strtoul(const char* _Str,char** _EndPtr,int _Radix); __int64...

理县19242114964: 如何将串口读取的十六进制字符串转换成十进制数值 -
谯知纳德: 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

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