C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/double/float)(全)
首先必须知道u8,s8等数据类型的定义:
typedef signed char s8;
typedef unsigned char u8; typedef signed short s16;
typedef unsigned short u16; typedef signed int s32;
typedef unsigned int u32; typedef signed long long s64;
typedef unsigned long long u64;
与体系结构相关的,定义在include/linux/type.h文件中:
/* bsd */
typedef unsigned char u_char;
typedef unsigned short u_short;
typedef unsigned int u_int;
typedef unsigned long u_long;/* sysv */
typedef unsigned char unchar;
typedef unsigned short ushort;
typedef unsigned int uint;
typedef unsigned long ulong;#ifndef __BIT_TYPES_DEFINED__
#define __BIT_TYPES_DEFINED__typedef __u8 u_int8_t;
typedef __s8 int8_t;
typedef __u16 u_int16_t;
typedef __s16 int16_t;
typedef __u32 u_int32_t;
typedef __s32 int32_t;#endif /* !(__BIT_TYPES_DEFINED__) */typedef __u8 uint8_t;
typedef __u16 uint16_t;
typedef __u32 uint32_t;#if defined(__GNUC__)
typedef __u64 uint64_t;
typedef __u64 u_int64_t;
typedef __s64 int64_t;
对于各种数据类型的打印方式总结如下如下:
数据类型 | 打印格式 |
---|---|
u8 | %d |
s8 | %d |
u16 | %d or %hu |
s16 | %d or %hd |
u32 | %u |
s32 | %d |
u64 | %llu |
s64 | %lld |
int | %d |
unsigned int | %u |
short int | %d or %hd |
long | %ld |
unsigned long | %lu |
long long | %lld |
unsigned long long | %llu |
char | %c |
char * | %s |
bool (#define stdbool.h) | %d |
unsigned int/int------>十六进制 | %0x |
unsigned long/long---->十六进制 | %0lx |
long long/unsigned long long ----->十六进制 | %0llx |
unsigned int/int------>八进制 | %0o |
unsigned long/long---->八进制 | %0lo |
long long/unsigned long long ----->八进制 | %0llo |
float | %f |
double | %f or %lf |
科学技术类型(必须转化为double类型) | %e |
限制输出字段宽度 | %x.yf (x:整数长度,y:小数点长度) |
待解问题,在linux kernel里面也有使用bool来定义变量,查看code,定义如下:
typedef _Bool bool;
但是并没有真正找到具体定义在何处,待解。下面是stdbool.h的source code:
#define _STDBOOL_H#ifndef __cplusplus#define bool _Bool
#define true 1
#define false 0#else /* __cplusplus *//* Supporting _Bool in C++ is a GCC extension. */
#define _Bool bool#if __cplusplus < 201103L
/* Defining these macros in C++98 is a GCC extension. */
#define bool bool
#define false false
#define true true
#endif#endif /* __cplusplus *//* Signal that all the definitions are present. */
#define __bool_true_false_are_defined 1#endif /* stdbool.h */
也大致解释了linux kernel bool type了。
如果大家有兴趣,可以扫码关注我的个人公众号:
C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/double/float)(全)相关推荐
- c语言 u16 printf,C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/double/float)(全)...
u16 首先必须知道u8,s8等数据类型的定义: typedef signed char s8; typedef unsigned char u8; typedef signed short s16; ...
- linux u8 u16 u32 u64,C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/doub
C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/doub C 语言printf打印各种数据类型的方法(u8/s8/u16/s16.../u64/double/fl ...
- C语言printf打印的奥秘
基础补充 想完全掌握C语言的 printf() 函数,你就得明白C语言中的基本类型及其所占字节数. 位.字节.字的概念大家自己百度了解.下面我只给其关系: 8位 = 1字节 2字节 = 1字 代码示例 ...
- c语言printf打印字符串,puts()vs printf()用于以C语言打印字符串
函数puts()和printf()在stdio.h头文件中声明,用于将文本发送到输出流.两者都有不同的用法和语法. puts() 该函数puts()用于在输出流上打印带有附加换行符'\ n'的字符串. ...
- c语言printf打印浮点型,printf以%d输出浮点数
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 曾看到printf的一道题,挺有意思,记录一下. float value = 1.0; printf('value_int = %dn', value); ...
- C语言-printf打印的用法
printf函数的一般格式为: printf(格式控制,输出表列) 例如: printf("%d,%c\n",i,c) 括号内包含两部分: "格式控制"是用双撇 ...
- c语言 printf打印字符串
格式输出 %s直接打印 %-5.3s :小数点前数字表示对齐数,±表示左右对齐,小数点后数字表示打印几位 #include<iostream> using namespace std;in ...
- C语言-printf打印%*s、%.*s与%-.*s的区别
一.简介 在平时的使用中,会经常使用到printf进行打印,而最长使用的方式是printf("%s",string)进行打印.但是有个问题,如果string结尾不是0.那么prin ...
- C语言printf 打印十六进制数字0x01
串口打印调试信息,有一段为输出十六进制地址的打印,%x输出显示为:0x1,而不是0x01,因此找到解决的方式如下:改为:%02x即可. 代码段如: printf("\r\n 本机的标准ID号 ...
最新文章
- 2022-2028中国工作服市场现状及未来发展趋势
- 视频|深度相机与应用
- Flutter持久化存储之文件存储
- 1.2.2 OSI参考模型
- elasticsearch-5.0.0初见
- Mac下一台电脑管理多个SSH KEY(转)
- 怎么用命令启动服务器文件,linux启动服务器命令
- 从gbdt到xgboost
- Python注释和声明
- 阿里巴巴Aliware十年微服务架构演进历程中的挑战与实践
- 使用非参数统计检验进行分析的指南
- python中的函数(全)
- Linux下测试sdio,浅析Linux下sdio接口对sd卡硬件检测流程
- 《系统集成项目管理》第九章 项目成本管理
- php 电子签字,电子签名和电子签字的区别
- 「LOJ6198」谢特-SA+可持久化Trie+启发式分裂
- 2019微博热点,盘一盘那些记忆中的大瓜
- 大数据可视化(六)文本数据可视化
- 人工智能ai换脸技术_人工智能技术如何帮助企业改善营销
- 素数筛(筛选法求素数)