C++ int类型最大最小数字(16进制)

先上结论:

signed int max = 0x7fffffff
signed int min = 0x8fffffff
unsigned int max = 0xffffffff

验证:

  • 以下为转载看到的一篇博客,链接在结尾。
#include "stdafx.h"
int main(int argc, char *argv[])
{
	//unsigned types min (为数值0)
	unsigned char u_char_min = 0;
	unsigned short u_short_min = 0;
	unsigned int u_int_min = 0;
	unsigned long u_long_min = 0;
	//unsigned types max  (最小值取反为最大值)
	unsigned char u_char_max = ~u_char_min;
	unsigned short u_short_max= ~u_short_min;
	unsigned int u_int_max = ~u_int_min;
	unsigned long u_long_max = ~u_long_min;
	//signed types max (无符号最大值除以2为有符号数最大值)
	char	char_max = (char)(u_char_max >> 1);
	short	short_max = (short)(u_short_max >> 1);
	int	int_max = (int)(u_int_max >> 1); 
	long	long_max = (long)(u_long_max >> 1);
	//signed types min (符号数最大值再加1, 为符号数最小值)
	char	char_min = char_max + 1;
	short	short_min = short_max + 1;
	int	int_min = int_max + 1; 
	long	long_min = long_max +1; 
	//输出结果:
	//unsigned types min
	printf("unsigned char min = %u 0x%x\n", u_char_min,u_char_min);
	printf("unsigned short min = %u 0x%x\n", u_short_min,u_short_min); 
	printf("unsigned int min = %u 0x%x\n", u_int_min,u_int_min);
	printf("unsigned long min = %lu 0x%x\n", u_long_min ,u_long_min);
	//unsigned types max
	printf("unsigned char max = %u 0x%x\n", u_char_max,u_char_max);
	printf("unsigned short max = %u 0x%x\n", u_short_max,u_short_max); 
	printf("unsigned int max = %u 0x%x\n", u_int_max,u_int_max);
	printf("unsigned long max = %lu 0x%x\n", u_long_max ,u_long_max);
	//signed types max
	printf("signed char max = %d 0x%x\n", char_max,char_max); 
	printf("signed short max = %d 0x%x\n", short_max ,short_max);
	printf("signed int max = %d 0x%x\n", int_max ,int_max);
	printf("signed long max = %ld 0x%x\n", long_max,long_max);
	//signed types min
	printf("signed char min = %d 0x%x\n", char_min,char_min);
	printf("signed short min = %d 0x%x\n", short_min,short_min);
	printf("signed int min = %d 0x%x\n", int_min ,int_min);
	printf("signed long min = %ld 0x%x\n", long_min ,long_min);
	_getch();
	return 0;
}

输出结果:

unsigned char min = 0 0x0
unsigned short min = 0 0x0
unsigned int min = 0 0x0
unsigned long min = 0 0x0
unsigned char max = 255 0xff
unsigned short max = 65535 0xffff
unsigned int max = 4294967295 0xffffffff
unsigned long max = 4294967295 0xffffffff
signed char max = 127 0x7f
signed short max = 32767 0x7fff
signed int max = 2147483647 0x7fffffff
signed long max = 2147483647 0x7fffffff
signed char min = -128 0xffffff80
signed short min = -32768 0xffff8000
signed int min = -2147483648 0x80000000
signed long min = -2147483648 0x80000000

————————————————
版权声明:本文为CSDN博主「hjjdebug」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hejinjing_tom_com/article/details/7549667

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值