《明解C语言》示例代码和练习代码[第7章]

第7章 基本数据类型


示例代码:


示例代码7-1
/*
    本书设定的<limits.h>的部分内容 
*/

#define UCHAR_MAX        255U              // unsigned char的最大值
#define SCHAR_MIN        -128              // signed char的最小值
#define SCHAR_MAX        +127              // signed char的最大值
#define CHAR_MIN         0                 // char的最小值
#define CHAR_MAX         UCHAR_MAX         // char的最大值 
#define SHRT_MIN         -32768            // short int的最小值 
#define SHRT_MAX         +32767            // short int的最大值
#define USHRT_MAX        65535U            // unsigned short的最大值 
#define INT_MIN          -32768            // int 的最小值
#define INT_MAX          +32767            // int 的最大值 
#define UINT_MAX         65535U            // unsigned int 的最大值
#define LONG_MIN         -2147483648L      // long int 的最小值
#define LONG_MAX         +2147483647L      // long int 的最大值
#define ULONG_MAX        4294967295UL      // unsigned long 的最大值

示例代码7-2
/*
    显示各种整数数据类型的表示范围 
*/

#include <stdio.h>
#include <limits_derek.h>

int main(void)
{
    printf("char        : %d ~ %d\n", CHAR_MIN, CHAR_MAX);
    printf("short int   : %d ~ %d\n", SHRT_MIN, SHRT_MAX);
    printf("int         : %d ~ %d\n", INT_MIN, INT_MAX);
    printf("long  int   : %ld ~ %ld\n", LONG_MIN, LONG_MAX);
    
    return (0);
}

示例代码7-3
/*
    判断char型有无符号 
*/

#include <stdio.h>
#include <limits_derek.h>

int main(void)
{
    printf("这个编译器中的char型是");
    
    if (CHAR_MIN)
        puts("有符号的。");
    else
        puts("无符号的。");
    
    return (0);    
}

示例代码7-4
/*
    显示数据类型长度 
*/

#include <stdio.h>

int main(void)
{
    printf("sizeof(char)  = %u\n", (unsigned)sizeof(char));
    printf("sizeof(short) = %u\n", (unsigned)sizeof(short));
    printf("sizeof(int)   = %u\n", (unsigned)sizeof(int));
    printf("sizeof(long)  = %u\n", (unsigned)sizeof(long)); 

    return (0);   
}

示例代码7-5
/*
    显示unsigned型的位串 
*/

#include <stdio.h>

// 返回在整数x中设置的位数
int count_bits(unsigned x)
{
    int count = 0;
    while (x) {
        if (x & 1U)    count++;
        x >>= 1;
    }    
    return (count);
} 

// 返回unsigned型的位数
int int_bits(void)
{
    return (count_bits(~0U));  
  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值