点击上方公众号名称关注,获得更多内容

✎ 编 者 悟 语

很多事根本就没有那么多的前提可言,想做事,就不要把先决条件看得过重。

文 章 导 读

今天给小伙伴们介绍下了下进制转换和字符串与数值互转的方法,这在工程应用中是经常用到的,希望对小伙伴们有所帮助哈,

1用到的字符串与数值互转的库函数

    1)atoi字符转整数

   int atoi(const char* nptr)

① 头文件。

   #include 

② 参数说明。

nptr: 指向要转换的字符串。

③ 返回值。

返回转换后的整数值。

说明:

类似函数有strtoul(字符串转换成无符号长整型数)和strtol(字符串转换成长整型数)。

  2)itoa整数转字符

   char* itoa(int val,char* str,int radix)

① 头文件。

   #include 

② 参数说明。

val: 要转换的整数。

str: 转换后的字符串。

radix: 要转换的进制数,如2,8,10,16进制等。

③ 返回值。

返回转换成的字符串。

2实例代码

代码注释比较详细哈,

#include #include 

/* 一个精妙的函数实现,可以实现不同进制的互相转换,需要注意转成的是字符串 */ char* baseconv(unsigned int num,int base);

int main(){     char s,str[30];     long ret;     char *ch;     char bret;

     int ati; 

     /* 将二进制字符串转为16进制 */      printf("\n1)将二进制字符串转为16进制\n"); 

//   sprintf(str, "%d" , 100);                 // 将整数100转为二进制字符串存入数组str中      itoa(0b100, str, 2);                        // 与上面sprintf效果一样 

     printf("\n整数100转字符串:%s\n",str); 

     ret = strtol(str, NULL, 16);                // 将字符串100转换为16进制      printf("\n字符串100转成十六进制整数:0x%x\n\n十进制整数:%d\n", ret,ret);

     /* 将十六进制整数转换为二进制字符串 */      printf("\n\n2)将十六进制整数转换为二进制字符串\n");      ch = baseconv(0x20, 2);                     // 0x20为要转的数,2为进制数      printf("\n二进制字符串:%s\n", ch);         // 串在为0x20的二进制形式 

     ati = atoi(ch);     printf("\n二进制字符串转整数:%d\n", ati);  // 直接将0x20的二进制形式转为整数,此时整数值为100000已经与0x20(十进制为32) 不相等了 

     return(0);}

char* baseconv(unsigned int num,int base){      char*p;     static char retbuf[33]; 

     if(base  16)     {          return NULL;     }

     p=&retbuf[sizeof(retbuf)-1];                // 指向数组最后一个元素      *p='\0'; 

     do     {          *--p="0123456789abcdef"[num % base];    //此句为"a"[10]的形式,可以理解为 char b[10] = "a";           num /= base;     }while(num!=0); return p;

}

说明:

baseconv函数实现是《你必须知道的495个C语言问题》那本书中的,它支持不同进制转换的,num为要转换的值(可以传入不同进制的数),base是要转换成的进制数。

baseconv转成的是字符串。

数值转字符串sprintf也是个不错的选择。

运行结果如下。

总结

今天给小伙伴们介绍下了下进制转换和字符串与数值互转的方法,这在工程应用中是经常用到的。后面还会有C语言相关的内容,大家敬请期待哈,

有问题可以后台留言交流,公众号18年后新申请的,文章后不支持留言功能的。

相关文章:

C函数如何一次返回多个值呢?试试这3种方式吧!

原来数组还可以这么玩(宏把数组玩坏了)

利用结构数组和函数指针查找法调用函数

用掩码数组和枚举增强C代码的可读性

编程意识篇——用结构存储数据以减少函数二次调用,能替代return返回值吗

malloc为什么不能在函数体外给全局变量分配内存

进化论——从函数指针到被结构封装的函数指针及参数的应用举例

专辑推荐:

Python技能专辑

C语言专辑

IDE调试专辑

软件推荐专辑

软实力专辑

Linux专辑

扫码关注我们

Game Over!

将字符串转为16进制数_C语言中的进制互转与数值和字符串互转的混搭玩法相关推荐

  1. c语言8进制数与16进制数,C语言中的二进制数、八进制数和十六进制数

    C语言中的整数除了可以使用十进制,还可以使用二进制.八进制和十六进制. 二进制数.八进制数和十六进制数的表示 一个数字默认就是十进制的,表示一个十进制数字不需要任何特殊的格式.但是,表示一个二进制.八 ...

  2. python- ASCII字符串转为16进制格式

    代码 #!/usr/bin/python3 hexForamt="\\x" # 更改这里的ASCII字符串 asciiStr="AAABBBccc" def a ...

  3. c语言oj答案进制转换,C语言编程的进制问题问题

    在我们的编译器,我用的是ADS   开发平台,现在RTC模块编程时,2410作为上位机,如下代码: n = rBCDDATE; if(n==1) time->day =0x31 ; 波斯历的日期 ...

  4. python表示整除的符号_c语言中整除符号怎么表示?_后端开发

    c语言fun函数有什么例题?_后端开发 c语言fun函数例题有:1.fun函数表示计算x的y次幂,代码为[for(int i=1;i<=y;i++)result*=x]:2.fun函数交换两个指 ...

  5. 将字符串转为16进制数_Python 如何将字符串转为字典

    问题:需要将一个 Python 的字符串转为字典,比如字符串: user_info = '{"name" : "john", "gender" ...

  6. 计算机不同进制数之间的转换,计算机进制数之间的转换002

    不错 除以16取余和倍数 如: (120)10 120/16 =8 ...8(余8) 8(余数8)/16=0 (8) (120)10 =(88)16 回答人的补充 2009-08-14 09:42 计 ...

  7. 进制在c语言中的作用,C语言中的进制是什么意思?

    十进制数 人们通常使用的是十进制.它的特点有两个:有0,1,2-.9十个基本数字组成,十进制数运算是按"逢十进一"的规则进行的. 在计算机中,除了十进制数外,经常使用的数制还有二进 ...

  8. 计算机编码中进制的区别,计算机中的进制和编码(转载)

    转载至 http://www.cnblogs.com/resn/p/5775378.html 古时候,人们是如何来传递消息的? 当年周幽王为博褒妃一笑,不顾众臣反对,竟数次无故点燃边关告急用的烽火台, ...

  9. c语言中二进制与十进制怎么转换器,十进制与二进制如何互转换?编程语言教会你进制编程...

    计算机语言中经常使用到进制之间的转换,本文介绍使用不同编程语言来如何实现十进制与二进制相互之间的转换?不同编程语言中进制转换原理是一样的. 十进制转换二进制原理:采用除2取余,逆序排列输出. 实现:用 ...

最新文章

  1. 33. 使用fread()/fwrite()往文件中写入结构体,从文件中读出结构体
  2. python截取数组的一半_python:28.数组中出现次数超过一半的数字
  3. 用TextKit实现表情混排
  4. 《剑指offer》c++版本 15.二进制中1的个数
  5. TX1在opencv中调用gstreamer解码海康IP摄像头
  6. 小学用计算机画画的课件,用计算机画图画.ppt
  7. 一文告诉你Java素数怎么判断
  8. Linux下安装DB2数据库
  9. 5.10300 - Ecological Premium
  10. c语言小游戏跳一跳代码及注释,c语言小游戏程序之弹跳小球的实现代码
  11. simulink提示错误Invalid OutputTimes specified in the Configuration Parameters dialog for block diagram
  12. python图像切割成多边形_如何在python中将图像裁剪成多边形
  13. uniapp返回上一级选择性刷新数据,不重新加载页面
  14. 用VC实现Html编辑器
  15. 阿里成立MMC事业群,社区团购为何如此火?
  16. 【积跬步以至千里】如何查看浏览器保存的密码
  17. 三、BLDC矢量控制基础知识:三相线圈的电感矩阵
  18. matlab离散信号的绘制
  19. 第6组-17通信工程3班-156 黄子羡 网络抓包分析
  20. 华为博士招聘上机考试题目_华为校园招聘上机考试题目

热门文章

  1. 04737 c++ 自学考试2019版 第五章程序设计题 1
  2. chrome关闭自动更新 mac
  3. C#LeetCode刷题之#674-最长连续递增序列( Longest Continuous Increasing Subsequence)
  4. redux-thunk使用_Redux Thunk用示例解释
  5. 如何使用Docker Swarm管理更多容器
  6. 程序员为什么觉得会议很无聊_我从100个无聊的会议中学到的难忘的教训
  7. 正则表达式匹配减号_THOR断点教程0910 网球规则1112 后附常用正则表达式数据...
  8. Ubuntu常用服务器ftp、ssh
  9. 计算 期望与方差(mean and Variance)在 Tensorflow 与 Numpy 对比
  10. %3cphp和%3c php_PHP 编码安全