zzy-c

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()
{
    char c = 1;
    printf("%u\n", sizeof(c)); //1
    printf("%u\n", sizeof(+c));//4
    printf("%u\n", sizeof(-c));//4
    printf("%u\n", sizeof(!c));//4 gcc-4已gcc为准

    return 0;
}

 

 

 

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()
{
    //整形提升是按照变量的数据类型的符号位来提升的
    char a = 3;
    //00000000 00000000 00000000 00000011
    //00000011-a
    char b = 127;
    //00000000 00000000 00000000 01111111
    //01111111-b

    char c = a + b;
    //00000000 00000000 00000000 00000011 //a提升完
    //00000000 00000000 00000000 01111111 //b提升完
    //00000000 00000000 00000000 10000010
    // 
    //10000010-c
    //11111111 11111111 11111111 10000010 //c整型提升完 内存里面存储的是补码
    //11111111 11111111 11111111 10000001//补码-1就是反码 打印出来的原码
    //10000000 00000000 00000000 01111110//原码-126
    //发现a和b都是char类型的,都没有达到一个int的大小
    //这里就会发生整形提升

    printf("%d\n",c);
    
    return 0;
}

 

posted on 2022-04-02 12:28  zzy_C  阅读(109)  评论(0)    收藏  举报