首页 > 其他分享 >C语言整型提升

C语言整型提升

时间:2023-03-10 21:38:03浏览次数:39  
标签:11111111 10 位补 00000000 C语言 char 提升 整型

当定义一个char类型的数据a,给其赋值10,即char a=10;

对于char类型的数据,在使用printf函数输出的时候,应该用%c,

但我们想要用%d来输出类型为char的数据时,就会发生整型提升,将a由原本的八个比特位提升到int类型(%d)的32个比特位

整型提升规则,对于无符号数据(unsigned char),不足32个比特位的位置均补0,对于有符号数据(signed char),看原本数据的符号位是0还是1,是0则其余位补0,是1则其余位补1

例如 unsigned char a=10; //a的补码为00001010

printf("%d ",a); //当以整型输出时,出现整型提升,a是无符号数,其余位补0,即 00000000 00000000 00000000 00001010

例如signed char b=-10;printf("%d ",a);//b的原码为10001010,反码为11110101,补码为

11110110,当以整型输出时,出现整型提升,b是有符号数,且符号位为1,所以其余位补1,即

11111111 11111111 11111111 11110110,这是整型提升后b的补码,

反码为11111111 11111111 11111111 11110101

原码为10000000 00000000 00000000 00001010

结果为-10

标签:11111111,10,位补,00000000,C语言,char,提升,整型
From: https://blog.51cto.com/u_15466618/6113493

相关文章

  • C语言之数据的存储(一)(整型数据)
    一、整型数据在内存中的存储1.1整型数据家族char,short,intlong(每种类型又分为unsigned和signed,例如,signedchar,unsignedchar)1.2整型数据的存储对于整型数据,其在计......
  • 初识C语言3/10
    循环语句:while循环:#include<stdio.h>intmain(){inti=1;while(i<=10){if(i==5)break;printf("%d\n",i);//1,2,3,4,5......
  • C语言基础
    C语言属于:结构化语言;一个函数包括两部分:函数首部和函数体;一个C程序的运行包括:上机编程源程序,编译源程序,进行连接处理,运行可执行程序;每个数据声明和语句的最后必须有一个......
  • 整型提升练习题
    #include<stdio.h>intmain(){chara=-1;//-1原码=10000000000000000000000000000001//-1反码=11111111111111111111111111111110//-1补码=1111111111111......
  • C语言的字符串类型
    1.由双引号引起的就是字符串#include<stdio.h>intmain(){chararr1[]="abc";//={'a','b','c','\0'}chararr2[]={'a','b','c'};printf("%d\n",sizeof(arr1));/......
  • c语言指针和传引用
    指针可能已经会了,只写一个例子吧形式参数和实际参数首先一个前置知识就是一个实际参数和形式参数实际参数:真实传给函数的参数,叫实参。形式参数是指函数名后括号中的变量......
  • vscode c语言printf打印中文,终端输出乱码问题
    具体步骤:文件->首选项->设置->下图图标进入settings.json在settings.json中添上"code-runner.executorMap":{"javascript":"node","java":"cd$dir&&javac$f......
  • 11、安全运营中心需要提升的核心能力
    转载公众号《微言晓意》,仅用于个人学习根据NISTCybersecurityFramework,网络安全工作可以分为识别、防御、检测、响应、恢复五个大的阶段,安全建设在识别、防御、恢复三个......
  • 好用的C语言代码
    全局定义的变量类型定义#ifndef__TYPEDEF__typedefsignedcharint8_t;typedefunsignedcharuint8_t;typedefsignedshortint16_t;typ......
  • 第三章 C语言:栈和队列
    一、栈特性:先进后出,顺序存储#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<stdbool.h>#defineCAPACITY3//默认初识容量typedefintSD......