C/C++ ultoa函数

ChatGPT 3.5 国内中文镜像站免费使用啦

零基础 C/C++ 学习路线推荐 : C/C++ 学习目录 >> C 语言基础入门


一.ltoa函数简介

stdlib.hultoa 函数,可用于将 unsigned long 无符号长整数类型转为 char 字符串,语法如下:

/*
*描述:此类函数是把 value转换成一个以空格结尾的字符串,并存储在string中(至多33个字节)。
*
*参数: 
*   [in] value:unsigned long无符号长整数类型
*   [in] string:字符串类型
*   [in] radix:整数类型,转换后的进制类型,可以转为二进制/八进制/十六进制
*   
*返回值:指向string这个字符串的指针
*/
char *ultoa(unsigned long value,char *string,int radix)

二.int/long/unsigned long区别

C 语言的整形,分类两类,一种是有符号的(正数/负数),一种是无符号的(默认是大于等于零);


1.无符号整形(16位系统)

unsigned int 取值范围          :0~65535
unsigned short int 取值范围    :0~65535
unsigned long int 取值范围     :0~4294967295

无符号整形,默认重0开始,永远不可能有负数;


2.有符号整形(16位系统)

int 取值范围           :-32768~+32767
short int 取值范围     :-32768~+32767
long int 取值范围      :-2147483648~+2147483647

有符号整形有正负区间(包含大于0和小于0两个区间),实际上总长度和无符号整形一样;


3.int 和 long区别


早期的操作系统是16位系统

int 用 2 字节表示,范围是-32768~32767;
long用 4 字节表示,范围是-2147483648~2147483647;

后来发展到32位操作系统

int 用 4 字节表示,与 long 相同,范围是-2147483648~2147483647;

目前的操作系统已发展到64位操作系统,但因程序编译工艺的不同,两者表现出不同的差别:

32位编译系统:int 占四字节,与 long 相同,范围是-2147483648~2147483647;
64位编译系统:int 占四字节,long占 8 字节,long 数据范围变为:-2^63 ~ 2^63-1;

三.ultoa函数函数实战

/******************************************************************************************/
//@Author:猿说编程
//@Blog(个人博客地址): www.codersrc.com
//@File:C/C++ ultoa函数
//@Time:2021/08/16 08:00
//@Motto:不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
/******************************************************************************************/

#include "stdafx.h"
#include <stdio.h>
#include "windows.h"

#pragma warning(disable: 4996)

int _tmain(int argc, _TCHAR* argv[])
{
    char szDst[1024] = "";
    int nSrc = 123;
    ultoa(nSrc, szDst, 10);
    printf("%d 对应的十进制字符串是 %s \n", nSrc, szDst);

    ultoa(nSrc, szDst, 8);
    printf("%d 对应的八进制字符串是 %s \n", nSrc, szDst);

    ultoa(nSrc, szDst, 16);
    printf("%d 对应的十六进制字符串是 %s \n", nSrc, szDst);

    ultoa(nSrc, szDst, 2);
    printf("%d 对应的二进制字符串是 %s \n", nSrc, szDst);

    system("pause");
    return 0;
}
/*
输出:
123 对应的十进制字符串是 123
123 对应的八进制字符串是 173
123 对应的十六进制字符串是 7b
123 对应的二进制字符串是 1111011
请按任意键继续. . .
*/

看到这里是不是很疑惑,感觉和前面介绍的 itoa 函数没什么区别,其实却是没有什么区别,ultoa 函数主要是针对 unsigned long 类型,在数值比较小的时候,使用 itoa 函数和 ultoa 函数都一样


四.猜你喜欢

  1. C语言 数组下标越界和内存溢出区别
  2. C语言 使用指针遍历数组
  3. C语言 指针和数组区别
  4. C语言 指针数组和数组指针区别
  5. C语言 野指针
  6. C语言 函数值传递和址传递
  7. C语言 函数不定长参数
  8. C语言 函数指针
  9. C语言 指针函数
  10. C语言 回调函数 callback
  11. C语言 #pragma once
  12. C语言 #include <> 与 #include “” 区别
  13. C语言 const 修饰函数参数
  14. C语言 const 和 define 区别
  15. C语言 #运算符
  16. C语言 ##运算符
  17. C语言 __VA_ARGS__
  18. C语言 ##__VA_ARGS__
  19. C语言 函数不定长参数 ##__VA_ARGS__经典案例
  20. C语言 va_start / va_end / va_arg 自定义 printf 函数
  21. C语言 main 函数
  22. C语言 main 函数参数 main(int argc, char *argv[])
  23. C语言 局部变量
  24. C语言 全局变量
  25. C语言 全局变量和局部变量区别
  26. C语言 static
  27. C语言 extern
  28. C/C++ Unicode 和多字节区别
  29. C/C++ wprintf 输出中文乱码
  30. C/C++ char 和 wchar_t 相互转换

ChatGPT 3.5 国内中文镜像站免费使用啦
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容