C语言%hhu %hu 等含义区别

如题所述

C语言%hhu、%hu区别为:输出类型不同、占用空间不同、数值范围不同。

一、输出类型不同

1、%hhu:%hhu的输出类型为用于输出一个unsigned short短整型的数值。

2、%hu:%hu的输出类型为用于输出一个unsigned short int整型的数值。

二、占用空间不同

1、%hhu:%hhu的占用空间为一个字节。

2、%hu:%hu的占用空间为两个字节。

三、数值范围不同

1、%hhu:%hhu的数值范围为0到255[2^8-1]。

2、%hu:%hu的数值范围为为0到65535[2^16-1]。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-15

区别:

    %hu用于输出一个unsigned short int类型的数值,此类型占两个字节,范围为0到65535(2^16-1)

    %hhu用于输出一个unsigned short类型的数值,此类型占一个字节,范围为0到255(2^8-1)

代码

#include <stdio.h>
int main ()
{
    unsigned short int hu=256;
    unsigned short hhu=256;
    printf("hu=%hu,hhu=%hhu\n",hu,hhu); 
    return 0;
}

运行结果:

hu=256,hhu=0

结果解析:

    类型为unsigned short int的变量a被初始化为256,在这个类型允许范围之内,所以正常输出256。

    类型为unsigned short的变量b被初始化为256,溢出了。所以输出变量为0。

第2个回答  2017-12-04
%hu,%hx,%6.4hd
hh和整数转换说明符一起使用,表示一个short int 或者unsigned short类型的数值 ,示例:
%hhu,%hhx,%6.4hhd
j和整数转换说明符一起使用,表示一个intmax_t或者uintmax_t类型的数值 ,示例:
%jd,%8jx
l和整数转换说明符一起使用,表示一个long int 或者unsigned long int类型的数值 ,示例:
%ld,%8lu
ll和整数转换说明符一起使用,表示一个long int 或者unsigned long int类型的数值 (C99),示例:
%lld,%8llu
第3个回答  2017-11-10

区别:

    %hu用于输出一个unsigned short int类型的数值,此类型占两个字节,范围为0到65535(2^16-1)

    %hhu用于输出一个unsigned short类型的数值,此类型占一个字节,范围为0到255(2^8-1)

网页链接

第4个回答  2017-11-26
%hhu %hu 主要使用地方在:
printf和scanf,即格式化输入输出;
在格式化输入输出中,u代表unsigned int;通常4个字节;
hu就是long unsigned int 通常8个字节;
hhu就是long long unsigned int; 通常8个字节,为了向后兼容;