sms182006 发表于 2021-5-26 19:53:38

数据类型取值范围的问题,大佬们这是哪里的原因呢

#include <stdio.h>

int main()
{
        char i = -1;
        printf("%u\n", i)

        return 0;
}

打印出来结果是 4294967295

我想定义变量i为字符型,值为-1,在内存中应该是占一个字节,二进制形式为1111 1111,为何打印结果不是255呢?、
确是占用了4个字节的4294967295呢?哪里不对呢

肖-肖 发表于 2021-5-26 20:10:25

本帖最后由 肖-肖 于 2021-5-26 20:19 编辑

%u是表示按unsigned int格式输出数据。

sms182006 发表于 2021-5-26 20:55:51

肖-肖 发表于 2021-5-26 20:10
%u是表示按unsigned int格式输出数据。

嗯 就是想让他输出为无符号整数 为啥不是打印出255呢

wp231957 发表于 2021-5-26 21:17:41

sms182006 发表于 2021-5-26 20:55
嗯 就是想让他输出为无符号整数 为啥不是打印出255呢

255是哪年的cpu了,

人造人 发表于 2021-5-26 21:32:48

#include <stdio.h>

int main()
{
    char i = -1;
    printf("%hhu\n", i);
    return 0;
}

sms182006 发表于 2021-5-26 22:20:39

人造人 发表于 2021-5-26 21:32


明白了
页: [1]
查看完整版本: 数据类型取值范围的问题,大佬们这是哪里的原因呢