C基础用法

#include <stdio.h>
#include <limits.h> // 用于 CHAR_BIT(每字节的位数)

// 函数:打印任意数据的二进制表示
void printBinary(const void *data, size_t size)
{
    const unsigned char *bytes = (const unsigned char *)data;
    for (int i = size - 1; i >= 0; i--)
    { // 从高位到低位(大端序)
        for (int j = CHAR_BIT - 1; j >= 0; j--)
        {
            printf("%d", (bytes[i] >> j) & 1);
        }
        printf(" ");
    }
}

int main()
{
    char ch = 'A';    // 字符
    int num = -42;    // 负数
    float pi = 3.14f; // 浮点数

    // 1. 打印字符信息
    printf("字符 '%c' 的:\n", ch);
    printf("  ASCII码 (%%d): %d\n", ch);
    printf("  内存二进制 (sizeof=%zu): ", sizeof(ch));
    printBinary(&ch, sizeof(ch)); // 输出: 01000001 (A 的 ASCII)
    printf("\n\n");

    // 2. 打印整数信息
    printf("整数 %d 的:\n", num);
    printf("  十六进制 (%%x): %x\n", num);
    printf("  内存二进制 (sizeof=%zu): ", sizeof(num));
    printBinary(&num, sizeof(num)); // 输出: 11111111 11111111 11111111 11010110 (补码)
    printf("\n\n");

    // 3. 打印浮点数信息
    printf("浮点数 %f 的:\n", pi);
    printf("  科学计数法 (%%e): %e\n", pi);
    printf("  内存二进制 (sizeof=%zu): ", sizeof(pi));
    printBinary(&pi, sizeof(pi)); // 输出: 01000000 01001000 11110101 11000011 (IEEE 754)
    printf("\n");

    return 0;
}

  

posted @ 2025-07-17 10:51  华腾智算  阅读(12)  评论(0)    收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL