ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

编写程序,显示char,short,int,long的无符号最大取值

2021-02-17 16:01:59  阅读:124  来源: 互联网

标签:short 符号 int long char printf


/*程序原理*/
/*正整数在电脑中的存储使用的二进制原码存储,而负数则是用二进制补码方式存储。补码是用原码取反再加1后获得的。例如char a = -1,由于a是char型数据类型,占一个字节,也就是八位,所以-1的原码为,10000001,最高位是符号位,负数的符号位为1。取反的结果为(符号位不变),11111110,在加1为,11111111。
因为无符号类型的整数最高位不是符号位,所以最大取值就是所有的比特位都为1,利用这个特点,可以计算出以上数据类型的正数最大取值。*/
#include <stdio.h>

int main()
{
	char a = 0;		//定义字符型变量
	long b = 0;		//定义长整型变量
	int c = 0;		//定义整型变量
	short d = 0;	//定义短整型变量
	//%u为无符号类型输出格式符
	printf("char a = %u\n",(unsigned char)(a - 1));		//无符号类型输出强制类型转换的结果
	printf("long b = %u\n",(unsigned long)(b - 1));
	printf("int c = %u\n",(unsigned int)(c - 1));
	printf("short d = %u\n ",(unsigned short)(d - 1));
	return 0;
}

/*结果为:
char a = 255
long b = 4294967295
int c = 4294967295
short = 65535
从结果可以看出,在我的电脑中,long型与int型数据类型占据的字节数是一样的,都为四个字节,32位;而char型占一个字节,八位;short型占两个字节,十六位。
*/

标签:short,符号,int,long,char,printf
来源: https://blog.csdn.net/weixin_45032539/article/details/113834759

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有