道滘东莞微信网站建设旅游网站优化方案

news/2025/9/23 7:25:49/文章来源:
道滘东莞微信网站建设,旅游网站优化方案,珠宝网站模版,视频网站开发书籍点击 C 语言编程核心突破 快速C语言入门 itoa函数的局限以及实现 前言一、功能描述二、具体实现对于第一版, 实现如下:第二版实现:测试用例: 总结 前言 把一个数用某种进制打印, 是一个很有用的功能, 值得庆幸的是, C语言有这么一个函数itoa(), 它可以把一个数转换为… 点击 C 语言编程核心突破 快速C语言入门 itoa函数的局限以及实现 前言一、功能描述二、具体实现对于第一版, 实现如下:第二版实现:测试用例: 总结 前言 把一个数用某种进制打印, 是一个很有用的功能, 值得庆幸的是, C语言有这么一个函数itoa(), 它可以把一个数转换为2至36进制的字符串, 但不那么幸运的是, 这个函数只是存在于某些编译器中, 比如Windows下的clang, 但Linux下, 则没有这个函数. 不过这也不是什么问题, 既然选择用C语言, 造轮子就是程序员的命运, 做个函数实现, 并不困难. 一、功能描述 itoa()函数需要传入三个参数, 一个无符号整数num, 基于num进行进制转换, 一个字符指针string, 为了安全, 至少需要33字节, 因为我们要实现一个转换32位的函数, 如果是2进制, 最大需要32位, 外加一个末尾0, 一个进制限制radix, 从2到36, 再多也可以, 但是意义不大. 函数返回赋值后的string字符指针, 因此函数原先应该是: char *itoa(uint32_t num, char *string, uint32_t radix);二、具体实现 对于第一版, 实现如下: #include stdint.h #include string.hchar *itoa(uint32_t num, char *string, uint32_t radix) {static char arr[40];arr[0] 0;static int index;index 31;while (num){static uint32_t numA;numA num % radix;arr[index--] (char)(numA 9 ? numA - 10 a : numA 0);num / radix;}static char *rest;rest arr (index 31 ? 0 : index 1);strncpy(string, rest, 32 - index);return string; }但有两个问题可以进行改进, 其一, 进制限制没有判断, 如果是超过2至36的其它数则会出现比较奇怪的输出, 需要打个补丁. 其二, 基于效率, 字符转换用了三目运算, 这个可能比较吃效率, 需要优化. 第二版实现: #include stdint.h #include string.hchar *itoa(uint32_t num, char *string, uint32_t radix) {// 如果进制限制超出范围, 则返回空字符串if (radix 2 || radix 36){string[0] \0;return string;}// 如果num等于0, 则直接赋值为0, 返回if (num 0){string[0] 0;string[1] \0;return string;}// 建立一个buffer, 40的空间足够容纳所有转换字符static char arr[40];// 建立一个索引, 用于从后向前填充字符static int index;index 31;while (num){// 直接通过数组引用赋值, 免去分支以及计算arr[index--] 0123456789abcdefghijklmnopqrstuvwxyz[num % radix];num / radix;}// 这个函数的参数比较值得关注// arr index 1 是指向最后被赋值的字符位置的指针// 32 - index 是赋值字符数量 1 多一个字符位是给末尾0的strncpy(string, (arr index 1), (32 - index));return string; }实现中没有考虑到有符号的问题, 因为C语言中, 本身十六进制或二进制就没有符号, 当然, 如果有必要设计符号的转换, 也不难, 但函数的形参类型需要转换, 大家可以自己研究. 测试用例: #include stdint.h #include stdio.h #include string.hchar *itoa(uint32_t num, char *string, uint32_t radix);int main() {char str[40] abcdabcdabcdabcdabcdabcdabcdabcdabcd;itoa(255, str, 16);itoa(8, str, 16);itoa(-1, str, 2);itoa(0, str, 2);itoa(0, str, 1);return 0; }char *itoa(uint32_t num, char *string, uint32_t radix) {// 如果进制限制超出范围, 则返回空字符串if (radix 2 || radix 36){string[0] \0;return string;}// 如果num等于0, 则直接赋值为0, 返回if (num 0){string[0] 0;string[1] \0;return string;}// 建立一个buffer, 40的空间足够容纳所有转换字符static char arr[40];// 建立一个索引, 用于从后向前填充字符static int index;index 31;while (num){// 直接通过数组引用赋值, 免去分支以及计算arr[index--] 0123456789abcdefghijklmnopqrstuvwxyz[num % radix];num / radix;}// 这个函数的参数比较值得关注// arr index 1 是指向最后被赋值的字符位置的指针// 32 - index 是赋值字符数量 1 多一个字符位是给末尾0的strncpy(string, (arr index 1), (32 - index));return string; }总结 设计一个可用的库函数比想象的还是要难一些, 需要考虑到很多问题, 兼容性, 可移植性, 效率, 以及使用者的理解, 从这一个小小的函数实现, 就可见难度之大, 所以说, 有时候认为自己设计的东西随便就能碾压库函数, 那可能是梦的深沉, 没有睡醒. 点击 C 语言编程核心突破 快速C语言入门

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

具身智能机器人架构:人形机器人系统架构深度拆解

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 35469554100490871 人形机器人市场规模多家咨询公司预测,2030-2033年间人形机器人的…

怎么查找网站死链指数函数和对数函数

分布式锁概念 在多线程环境下,为了保证数据的线程安全,锁保证同一时刻,只有一个可以访问和更新共享数据。在单机系统我们可以使用 synchronized 锁、Lock 锁保证线程安全。 synchronized 锁是 Java 提供的一种内置锁,在单个 JVM …

网站国内空间和国外空间培训机构网站源码

一般情况下,报错信息一大堆,值得注意的只有三个地方: 哪个文件发生了错误哪一行发生了错误错误原因是什么 只要知道这三个东西就能快速的定位到错误发生的位置并且根据提示解决。 如果你也喜欢我的这种异常输出(如文章顶部图) 那么可以参考以…

网站开发字典文档wordpress安全检测工具

Ubuntu安装好以后,默认是安装使用nano编辑器。不过这对于用惯了vim的人可能会有些不习惯。好在Ubuntu下安装vim还是比较简单的,使用如下命令即可:sudoapt-get install vim(apt-get install vim-full这下就好了 在输入 :syntax on 或者把/etc/…

php网站模板源码成都网站seo收费标准

一、引言 在Unity3D开发的MMORPG(大型多人在线角色扮演游戏)中,多玩家状态同步是一个至关重要的技术环节。它确保了在大量玩家同时在线时,服务器和客户端之间能够保持状态的一致性,从而提供流畅且准确的游戏体验。本文…

网站结构与导航设计杭州正晖建设工程有限公司网站

数据结构与算法 数据结构与算法是计算机科学中的两个核心概念,它们在软件开发和问题解决中起着至关重要的作用。 数据结构 数据结构是计算机中存储、组织和管理数据的方式,它能够帮助我们高效地访问和修改数据。不同的数据结构适用于不同类型的应用场…

内部网站 建设目标如何做后台网站的教程

王爱军 本文由国家能源集团信息技术主管王爱军投递并参与《2023中国数智化转型升级优秀CIO》榜单/奖项评选。丨推荐企业—锐捷网络 大数据产业创新服务媒体 ——聚焦数据 改变商业 随着全球信息化和网络化的进程日益加速,数字化转型已经成为当下各大企业追求的核心…

廊坊建设网站企业北京企业网站排名优化

PI校正环节在经典控制论中非常有用,特别是对负反馈控制系统,基本上都有PI校正环节。1.下面分别说明比例环节和积分环节的作用,以阶跃信号为例。①比例环节单独作用以上分析说明,若只有比例环节的控制系统,阶跃响应也是…

有什么网站可以做设计赚钱吗百度网站评价

1、概念介绍 Nginx ("engine x") 是一个轻量级、高性能的 WEB 服务器软件和反向代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。其将源代码以类 BSD 许可证的形式发…

卓驭,欧洲无绝境

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 添加图片注释,不超过 140 字(可选)2025慕尼黑车展,卓驭任命Ni…

做游戏的网站有哪些广东东莞房价

mysql存储过程太慢的解决方法:首先打开my.cnf配置文件;然后添加配置【long_query_time1】;接着通过【tail -f /tmp/logs/mysqld.log】命令监控sql;最后进行针对性的优化即可。解决方法:第一步:修改/etc/my.…

仙桃做网站的公司有哪些wordpress 用户留言

回溯算法终于开始了! 题目链接:leetcode 77. 组合 文章讲解:代码随想录 77. 组合讲解 视频讲解:带你学透回溯算法-组合问题(对应力扣题目:77.组合) 思路和解法 题目: 给定两个整…

英文网站公司公众号开发框架

1.前言 在12.0的系统rom定制化开发中,在定制recovery模块的时候,由于产品开发需要要求禁用recovery的相关功能,比如在通过adb命令的 adb reboot recovery的方式进入recovery也需要实现禁用,所以就需要了解相关进入recovery流程来禁用该功能 2.禁用adb reboot recovery命令…

网站菜单代码制作响应式网站报价

转载自:https://mp.weixin.qq.com/s/B1eh4IcHTnEdv2y0l4MCog 拥有一种可靠的方法来预测和预测未来事件一直是人类的愿望。在数字时代,我们拥有丰富的信息,尤其是时间序列数据。 时间序列是指基于时间刻度维度(天、月、年等&…

消防做设计有什么网站蔚县做网站

电商行业面临着激烈的竞争,因此制定明确、可衡量的目标变得至关重要。OKR(Objectives and Key Results)管理方法为电商企业提供了一个有效的工具,帮助团队聚焦核心目标,确保实现企业战略。本文将结合多个电商岗位的OKR…

郑州网站建设讯息网站建设遵循的原则

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…

下周审核4家IPO,2家再融资。其中两家IPO企业于在审期间调减募资规模

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087 据交易所官网审核动态信息,下周(9月22日-9月26日)IPO上会审核4…

企业网站建设的背景和目的百度爱采购优化软件

目录 spring中拦截器 过滤器跟拦截器的区别 HandlerInterceptor拦截器 拦截器工作原理 拦截器使用场景 定义拦截器 LoginInterceptor 注册拦截器 MethodInterceptor拦截器 方式一:继承 MethodInterceptor 方式二:基于注解的AspectJ方…

商业网站的基本构成山东省品牌建设促进会网站

全世界只有3.14 % 的人关注了爆炸吧知识在物理书里,有各种物理大佬的照片。他们正襟危坐,他们不苟言笑,他们看起来就很“物理”。但是,知识君想说,谁不是个有血有肉的人啊?!选照片的时候给我好好…