C语言中有符号和无符号的区别(signed与unsigned)

    科技2022-07-14  160

    #include<stdio.h> int main(void) { //数类型 标识符=值 //无符号 unsigned 有符号singend(有符号可以省略) //有符号数是最高位为符号位,0代表正数,1代表负数。 //无符号数最高位不是符号位,而就是数的一部分,无符号数不可能是负数。 //%u——输出unsigned int类型-即表示输出一个无符号十进制整型数据 //% d——输出int类型 signed int a = -10; printf("%d\n", a);//-10 printf("%u\n", a);//乱码:4294967286 signed int b = 10; printf("%d\n", b);//10 printf("%u\n", b);//10 unsigned int c = 10; printf("%d\n", c);//10 printf("%u\n", c);//10 unsigned int d = -10; printf("%d\n", d);//-10 printf("%u\n", d);//乱码:4294967286 //结论:在整型数据的值 没有负号的时候,无符号有符号输出都为正常 //但数值定义为有符号 数值也有符号 则以%u(无符号形式输出) 结果为乱码 //若数值定义为无符号 数值有符号 以无符号形式输出 结果为乱码 //也就是说:数值有符号的时候 无论定义如何 以无符号输出%u的结果都为乱码 }
    Processed: 0.010, SQL: 8