2 qq 31214517 qq_31214517 于 2016.03.25 13:55 提问

c++16进制转10进制问题

我用string存储了输入的一个16进制数,现在要把它转换为10进制输出,除了用数位乘上权值之外还有什么方法办到这一点吗?
另外,16进制用int 储存吗?如果可以需要什么语句呢?

1个回答

baixiaohei09
baixiaohei09   2016.03.25 17:21
已采纳

给你说两个函数,都可以解决这个问题
1、sscanf(str,"%x",&iNum)
2、iNum = strtol(str,**p,16);
你可以查查资料,这两个函数都可以把十六进制的字符串转换成十进制数据;
另外十六进制可以用int存储,只不过一旦存储到int类型变量中就自动转换成十进制数据啦

qq_31214517
qq_31214517 谢谢
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
PHP实现把较大的十进制转换成十六进制
实现原理非常简单, 不断地除以16,直到商为0,再把余数倒序拼接起来: function bc_dechex($decimal) { $result = []; while ($decimal != 0) { $mod = $decimal % 16; $decimal = floor($decimal / 16); arra...
C语言实现字符串中(10进制和16进制)转成十进制数
如何将字符串中的10进制数和16进制数提取出来,看以下代码: #include typedef char TUINT8 ; typedef int TUINT32; TUINT32 Read_DecNumber(const TUINT8* str); TUINT32 Read_HexNumber(const TUINT8* str); int main(void) { int ret
Linux下的C语言编程——10进制转16进制和二进制
如题,今天我们来写十进制转16进制和 2进制。二进制前面我们写过。16进制的算法和二进制差不多。都是先对进制本身进行取余作为第一位,然后对进制做除法得到的商再对进制取余作为第二位。。循环往复 下面我附上我的代码 #include void to_binary(unsigned long num) { int r; r = num % 2; if(num >= 2) { to
16进制转10进制-C语言实现
其实很简单,16进制数存储在字符数组里,以16为倍数从前遍历到最后,以 ‘\0’结尾递增,上代码: #include int trans(char a[]) { int i=0,n=0; for(i;a[i]!='\0';i++) { if(a[i]>='0'&&a[i] n=n*16+a[i]-'0'; else if(a[i]>='a'&&a[i] n=n*16+a[i]-
十进制转十六进制的C语言实现
#include #include #include void reversestr(char*source,char target[],unsigned int length); void tohex(unsigned long num,char*hexStr); int main() { char hexStr[16]; int num; printf("请输入一个十进制数:\n");
c语言编程 把十进制转换为十六进制
#include   main() {     int u10;     char u16[10];     int w=0,a,b,i;           printf("请输入一个数字-->");     scanf("%d",&u10);     if(u10==0)     {         u16[0]='0';         w++;     }  
c语言字符串转换为16进制和10进制数字
字符串转换为16进制或者10进制:1、使用自己编写的函数。2、使用库函数。 将字符串转换为16进制两种方法的代码: #include #include #include  int HexStr2Int(char *buf)  { int result = 0; int tmp; int len,i; len = strlen(buf); printf("len
c语言中16进制转换为十进制
方法1:使用进制转换转载:https://zhidao.baidu.com/question/51006929.html#include #include /* 十六进制数转换为十进制数 */ long hexToDec(char *source); /* 返回ch字符在sign数组中的序号 */ int getIndexOfSigns(char ch); int main() {
C/C++编程语言之进制转换16进制字符串转10进制字符串
写出一个程序,接受一个十六进制的数值字符串,输出该数值的十进制字符串。 例如1:输入:0xA输出:10 例如2:输入:0xB1输出:177 #include #include #include #include "oj.h" /* 功能: 输入: 输出: 返回:成功返回0,其它-1; */ int favorite(int n) { i
c语言将十进制数转换为16进制的函数
有3种方式实现,其中两种是使用系统函数,另一种是直接自己编写。 使用系统函数实现要加入#include stdlib.h>,自己编写则不需要这个头文件。 下面的代码就是3种方式的实现,包括2位的整数和任意整数(2的31次方以内)都可以。可自己选择需要的实现方式。 利用系统函数有 1. char *  itoa ( int value, char * str, int base );