问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言如何把11位16进制字符串转成16进制数?

发布网友 发布时间:2022-05-02 07:15

我来回答

5个回答

热心网友 时间:2022-07-01 16:40

#include<stdio.h>

#include<stdlib.h>

voidmain()

{

char*p="0x1b";

char*str;

longi=strtol(p,&str,16);

printf("%d\r\n",i);

}

//输出值为27

参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如’0x’前置字符则会使用16进制做转换、遇到’0’前置字符而不是’0x’的时候会使用8进制做转换。

扩展资料

C语言十进制转2~16进制

#include<stdio.h>

voidtrans(intdata,intbase)

{

intx[64],k,i=0;

while(data)

{

x[i]=data%base;

data/=base;

i++;

}

for(k=i-1;k>=0;k--)

if(x[k]<10)

printf("%d",x[k]);

elseif(x[k]<=16)

printf("%c",'A'+x[k]-10);

}

intmain(void)

{

intnum,base;

scanf("%d%d",&num,&base);

if(base<=0||base>16)

{

printf("dataerror\n");

return;

}

printf("number=%dbase=%d\n",num,base);

trans(num,base);

printf("\n");

return0;

}

热心网友 时间:2022-07-01 16:41

主要有两个方法,其实都是对现有函数的使用: 
  1、方法1: sscanf()
  函数名: sscanf
  功  能: 从字符串格式化输入
  用  法: int sscanf(char *string, char *format[,argument,...]);
  以上的 format 为 %x 就是将字符串格式化为 16 进制数
  例子:


  #include <stdio.h>
  void main()
  {
  char* p = "0x1a";
  int nValude = 0;
  sscanf(p, "%x", &nValude);
  printf("%d\r\n", nValude);
  }

  输出:
  26


  2、方法2: strtol()
  函数名: strtol
  功  能: 将字符串转换为长整数
  用  法: long strtol(char *str, char **endptr, int base);
  上面的base就是我们要转换为几进制数
  例子:

  #include <stdio.h>
  #include <stdlib.h>
  void main()
  {
  char* p = "0x1b";
  char* str;
  long i = strtol(p, &str, 16);
  printf("%d\r\n", i);
  }

  输出:
  27

热心网友 时间:2022-07-01 16:41

初一看,还以为是要把11进制数转化为16进制数,
其实16进制数就是由0~9十个数字以及A~F六个字母组成
上面就是16进制数,我猜你是要把它改为纯数字表示,
因为我们已经看惯了十进制数

热心网友 时间:2022-07-01 16:42

/* strtol example */
#include <stdio.h>#include <stdlib.h>int main ()
{
char szNumbers[] = "2001 60c0c0 -1101110100110100100000 0x6fffff";
char * pEnd;
longint li1, li2, li3, li4;
li1 = strtol (szNumbers,&pEnd,10);//十进制
li2 = strtol (pEnd,&pEnd,16);//十六进制
li3 = strtol (pEnd,&pEnd,2);//二进制
li4 = strtol (pEnd,NULL,0);//十六进制
printf ("The decimal equivalents are: %ld, %ld, %ld and %ld.\n", li1, li2, li3, li4);
return 0;
}

参考资料:http://www.cplusplus.com/reference/clibrary/cstdlib/strtol/

热心网友 时间:2022-07-01 16:42

#define usrPrintHEX(Hex) {BYTE bufHex; bufHex=Hex>>4;\
if(bufHex<=9)\
pUart->write('0'+bufHex);

else pUart->write('A'+bufHex-0x0A);\
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
“笑指旧山归路长”的出处是哪里 PCB为什么要拼板,PCB拼板打样有哪些好处? 绘制紫外吸收光谱时,我发现最大吸收波长是333nm,此时吸光度为4.01 对吸光度测量值有何影响? 陆垚知马俐的歌词是什么? 玫瑰花水中的养殖方法 陈年柚子茶如何做 陈年柚子茶的制作方法 在答题卡上改题号是指那一道题扣分还是整个卷子都没? ...考试时我写到了卷子上,会怎么样?会不会按抄袭 高考时在卷子上不小心画了道怎么办? c语言如何以输出16进制字符到文件 C语言字符串转为16进制字符串 c语言怎么把十六进制转文字,例如E68891E99DA0 求代码 c语言怎么把十六进制转文字,例如E68891E99DA0求代码,如果可以讲讲思路就更好了 C语言,如何把字符串提取转为十六进制,如字符串vF.2.3.a.b.C.d,提取后为0x0F ? C语言中十六进制转字符, c语言十六进制字符串! C语言:怎么将十六进制字符串转换成二进制字符串,谁帮我写个函数 C语言程序,怎么把16进制转成字符: C语言实现十六进制转换成字符串 C语言 关于16进制转换成字符串 c语言十六进制数转化为字符串 c语言 怎么把十六进制数转换为字符串 c语言里面的十六进制如何转换成字符串 雨伞上长霉了,如何才能洗掉? 阴雨天气雨伞潮湿滴水,如何安置? 雨伞碎布怎么处理 四川省,人力资源管理师*需要哪些教材?我是大二的学生,大三考试的时候,教材换不换? 网站需要数据库和web空间都备份吗? 四川绵阳人事考试网 c语言中如何将16进制字符串转化成10进制整数? c语言字符串数组转换为十六进制并存储到数组中 10万元买理财是半年好,还是一年好? 持有1年以内的短期理财产品,选择上要注意什么? 年底理财产品6.1买半年合适吗 如何合理选择理财产品呢?最好是保本的短期产品还是不超过半年的? 北京社保代缴平台app哪个好? 我在招联金融贷款3万提现的时候提现不了他说有个提现全现要交899元才能提是真的吗_百度问一问 国内财经类大学的排名是怎么样的?你知道吗? 信用贷款和中介签了个居间合同还按了手印但是贷款提现不了 通过中介公司贷款,面签居间合同。审批额度下来了,还没有签放款合同... 买卖双方和中介签订居间合同有哪些作用 贷款签订了居间合同,贷款能成功 通过中介公司签订了二手房买卖居间合同,由于中介的不作为导致买方贷款失败被业主没收定金~~~ 和贷款中介公司签了委托合同,但是现在因为个人资质问题贷不下来款,我不想贷了,算违约吗? 我是卖家,已在中介公司跟买家签了居间买卖合同,但是合同上注明交易方式是做委托公证给买家。 今天去中介公司贷款5万签了合同我没注意看合同写的什么但是没有下款会不会上什么当啊! 二手房屋买卖中,先签了居间合同,然后进行了网签和银行贷款,现在又撤了网签,居间合同是否有效? 在21世纪不动产中介误导下签了居间协议,现在想要回意向金,请问怎么办 沈阳职业技术学院的专业