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

C语言整型提升

时间:2024-03-24 21:30:28浏览次数:22  
标签:符号 int 整数 C语言 char 提升 整型

C语言中整形算术运算总是至少以缺省整型类型的精度来进行的,为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为整型提升。就是说表达式中各种长度可能小于int长度的整型值,都必须先转换为int或者unsigned int ,然后才能送去CPU去执行运算。

如何进行整型提升?

1.有符号整数提升是按照变量的数据类型的符号位 (0或者1)来提升的

2.无符号整数提升,高位补0

//整型提升  
//1.有符号整数提升是按照变量的数据类型的符号位来提升的  char为有符号char,vs编译器这么认为
//2.无符号整数提升,高位补0
int main()
{
	char a = 3;//char ----signed char
	//00000000000000000000000000000011
	//00000011 char占一个字节
	char b = 127;
	//00000000000000000000000001111111  
	//01111111
	char c = a + b;
	//00000000000000000000000000000011     a用char类型的符号位0提升后
	//00000000000000000000000001111111     b用char类型的符号位0提升后
	//00000000000000000000000010000010
	//10000010  -c
	//%d  -以十进制的形式打印有符号整数
	//11111111111111111111111110000010     c用char类型的符号位1提升后结果补码
	//10000000000000000000000001111110     c结果原码
	printf("a+b=%d\n", c);//-126
	return 0;
}

标签:符号,int,整数,C语言,char,提升,整型
From: https://blog.csdn.net/2301_76310379/article/details/136995504

相关文章

  • C语言动态内存管理(重点)
    目录1、为什么要有动态内存分配2、malloc和free2.1malloc函数2.2 free函数3、calloc和realloc3.1  calloc函数 3.2 realloc函数3.3  realloc和malloc区别3.4 realloc函数存在的问题4、常见的动态内存的错误5、动态内存经典笔试题分析6、柔性数......
  • C语言-扫雷游戏的简单实现
    文章目录扫雷游戏的简单实现1.初始化棋盘2.打印棋盘3.在棋盘中布置雷4.排查雷扫雷游戏的简单实现本篇博客采用了多文件的方式来实现扫雷游戏geme.h----------函数的声明及符号的定义game.c-----------函数的实现test.c-----------游戏的运行主体代码如下g......
  • 实验一 熟悉C语言运行环境
    c语言程序设计——实验报告一实验项目名称:实验一熟悉C语言运行环境实验项目类型:验证性实验日期:2023年3月14日一、实验目的下载安装Devc6.0程序。了解在该系统上如何进行编辑、编译、连接和运行一个C程序。|通过运行简单的C程序了解C程序的特点。二、实验硬、软件环境......
  • C语言-结构体类型的认识
    1.前言:        因为C语言中的基本数据类型很少,不能描述很多现实中复杂的事物了,所以就引入了结构体类型。比如要描述生活中的人,用什么类型呢?如果只有基本数据类型,答案是什么都用不了,用char?int?double?好像都不太行。因为你人有年龄,姓名,身高等等信息要描述,一种基本数据......
  • c语言程序设计-实验报告2
    实验项目名称:实验报告2-数据描述实验项目类型:验证性实验日期:2024年3月21日一、实验目的1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。2、掌握不同数据类型之间赋值的规律。3、学会使用C的有关算术运算符,以及包含这些运算符的表......
  • 【保姆级讲解C语言中的运算符的优先级】
    ......
  • c语言基础(5)
    一、字符串函数        我们经常要处理字符和字符串,为了⽅便操作字符和字符串,C语⾔标准库中提供了⼀系列库函数,接下来我们就学习⼀下这些函数。1、字符分类函数    字符分类函数就是用来判断字符类型的函数。2、字符转换函数2.1 toupper    i......
  • c语言程序设计——实验报告二
    实验项目名称:实验报告2数据描述实验项目类型:验证性实验日期:2024年3月21日一、实验目的1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。2、掌握不同数据类型之间赋值的规律。3、学会使用C的有关算术运算符,以及包含这些运算符的......
  • c语言程序设计——实验报告二
    实验项目名称:实验报告2数据描述实验项目类型:验证性实验日期:2024年3月21日一、实验目的1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。2、掌握不同数据类型之间赋值的规律。3、学会使用C的有关算术运算符,以及包含这些运算符的......
  • c语言程序设计--实验报告二
    实验项目名称:实验报告2数据描述实验项目类型:验证性实验日期:2024年3月21日一、实验目的1、掌握C语言数据类型,熟悉如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。2、掌握不同数据类型之间赋值的规律。3、学会使用C的有关算术运算符,以及包含这些运算符的表达式。......