函数itoa()是将整数型转换为c语言风格字符串的函数,原型:

char * itoa(int data, char*p, int num);data是传入的带转化的数字,为整型变量(data的最大值为2的31次方减去1),p是传入的字符型指针,指向存储转换后字符串空间的首地址;num指定要转换成几进制的数字字符串(二进制,八进制,十进制,十六进制)。

如有不足之处,还望指正!!!

// TestInheritance.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include

#include

#include

using namespace std;

int myItoa(int data, char* p, int num)

{

if (p == NULL)

{

return -1;

}

if (data < 0)

{

*p++ = '-';

data = 0 - data;

}

int temp = 0;

int flag = 0; //标志位 0-不存储 1-存储

if (num == 10)

{//十进制

for (int i = 0; i < 10; i++)

{

temp = static_cast(data / pow(10.0, 9-i));// pow(i,j),求i的j次方,temp取得当前最高位

if (temp != 0)  //去掉最前面的0

{

flag = 1;//将标志位变为1,可以存储

}

if (flag != 0)

{

*p++ = temp + '0';  //变成字符

data = data % static_cast(pow(10.0, 9-i));

}

}

}

else if (num == 2)

{//二进制

for (int i = 0; i < 32; i++)

{

temp = static_cast(data / pow(2.0, 31-i)); //int型,存储值最大为(2的31次方-1),

if (temp != 0)

{

flag = 1;

}

if (flag != 0)

{

*p++ = temp + '0';

data = data % static_cast(pow(2.0, 31 - i));

}

}

}

else if (num == 16)

{//十六进制

for (int i = 0; i < 8; i++)

{

temp = static_cast(data / pow(16.0, 7-i));

if (temp != 0)

{

flag = 1;

}

if (flag != 0)

{

if (temp >= 0 && temp <= 9)

{

*p++ = temp + '0';

}

else if (temp >= 10 && temp <= 15)

{

*p++ = temp - 10 + 'A';

}

data = data % static_cast(pow(16.0, 7 - i));

}

}

}

else if (num == 8)

{//八进制

for (int i = 0; i < 16; i++)

{

temp = static_cast(data / pow(8.0, 15-i));

if (temp != 0)

{

flag = 1;

}

if (flag != 0)

{

*p++ = temp + '0';

data = data % static_cast(pow(8.0, 15-i));

}

}

}

}

int _tmain(int argc, _TCHAR* argv[])

{

int i = 100;

char a[32] ={0};

char b[32] ={0};

char c[32] ={0};

char d[32] ={0};

cout << i << "的八进制表示为: ";

myItoa(i, a, 8);

cout << a << endl;

cout << i << "的十进制表示为: ";

myItoa(i, b, 10);

cout << b << endl;

cout << i << "的二进制表示为: ";

myItoa(i, c, 2);

cout << c << endl;

cout << i << "的十六进制表示为: ";

myItoa(i, d, 16);

cout << d << endl;

return 0;

}

itoa函数c语言原型,深入C++实现函数itoa()的分析相关推荐

  1. c语言 格式转换函数,C语言中的格式转换函数.doc

    C语言中的格式转换函数 C语言中的格式转换函数 表头文件 #include 定义函数 double atof(const char *nptr); 函数说明 atof()会扫描参数nptr字符串,跳过 ...

  2. php strchr函数,C语言入门知识:strchr函数

    C语言入门知识:strchr函数 导语:strchr函数原型:extern char *strchr(const char *s,char c);查找字符串s中首次出现字符c的位置.下面是C语言str ...

  3. c语言回调函数_C语言学习第26篇---函数与指针分析 回调函数

    函数类型的概念 1.C语言函数也是有类型的 2.函数类型由函数返回值,参数类型,参数个数共同决定 int add(int i,int j) 的类型是 int(int , int) 3.C语言中通过ty ...

  4. 中常用的函数_ST语言编程中常用的函数/功能块

    大部分PLC都会内置很多基本的函数和功能块供编程人员调用,而且很多具有通用性,也就是在不同品牌的PLC中,这些函数和功能块的名称.用法和功能相同,记住这些函数和功能块的名称和使用方法,能让我们编程时更 ...

  5. rsa算法欧拉函数c语言,三、欧拉函数

    请思考以下问题: 任意给定正整数n,请问在小于等于n的正整数之中,有多少个与n构成互质关系?(比如,在1到8之中,有多少个数与8构成互质关系?) 计算这个值的方法就叫做欧拉函数,以φ(n)表示.在1到 ...

  6. c语言要使用数学函数,c语言中用到的 数学函数(转)

    数学函数(原型声明所在头文件为math.h.stdlib.h.string.h.float.h) int abs(int i)返回整型参数i的绝对值 double cabs(struct comple ...

  7. substr函数c语言实现,substr是什么函数?怎么用

    c语言substr函数是什么意思 c语言标准库函数中是没有substr函数的,除非你自定义实现. c++语言标准库中的string类包含了一个substr函数. 在MSDN中,关于该函数的描述如下: ...

  8. 插入函数c语言,线性表的插入函数

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 //SY2-2.CPP #include #define MAXSIZE 100 void Disp_A(int A[],int num) /*输出向量* ...

  9. atoi函数_C语言字符串、数字转换函数大全!

    常用到字符串和数字的转换 想找却发现网上的资料太散 所以搜集整理一下,方便给大家以后再用 atof(将字符串转换成浮点型数) atoi(将字符串转换成整型数) atol(将字符串转换成长整型数) st ...

最新文章

  1. etcd 笔记(08)— 基于 etcd 实现分布式锁
  2. ioctl()函数详解
  3. git 修改历史提交信息
  4. mysql视图执行原理_MySql中的视图 触发器 存储过程,以及事物
  5. 支付宝小程序中“”号写法
  6. vue nextTick深入理解-vue性能优化、DOM更新时机、事件循环机制
  7. KVM 介绍(1):简介及安装
  8. 全国计算机演示文稿,全国计算机等级考试二级office演示文稿题目[文].pdf
  9. python playsound播放时关闭_使用playsound modu停止音频
  10. 8081端口导致React Native启动失败
  11. Vue基础学习笔记Day05_生命周期_axios
  12. RS232接口EMC设计方案
  13. [论文阅读]ICE: Inter-instance Contrastive Encoding for Unsupervised Person Re-identification(ICCV2021)
  14. mybatis,引入pageHelper,参数中有pageNum和pageSize,且都不为空,会分页
  15. 金三银四过后整理出的阿里最新Java程序员面试题目(2018.4月)
  16. EverBox(同步网盘)邀请
  17. Python数据类型——元祖
  18. oracle simphony_绿云成为Oracle Hospitality解决方案和甲骨文产品最新分销商
  19. linux如何编写.sh脚本,linux sh脚本编写奇刃
  20. python opencv 图像叠加,python opencv图像叠加/图像融合/mask掩模

热门文章

  1. Matlab2017b启动慢,一直处于初始化状态的解决办法
  2. 宝塔误删mysql数据如何恢复?(救命题)
  3. 那些看过有收获或者回味无穷的电影
  4. EAGLE模拟数据中提取大量星系数据的一些方法
  5. VR工地安全教育三维仿真软件提高作业人员生命财产安全
  6. mysql监控服务器配置_zabbix 监控服务器(server)端详细配置
  7. Jmeter获取当前时间、历史时间、未来时间的方式
  8. CSDN设置插入代码的背景色为黑色 csdn更改背景色、主题
  9. zuul和gateway
  10. Java基础学习之数据结构:利用栈和队列完成表达式解析