(二十四)整型short,int,long,long long

简介:

整型就是……变量为整数的声明时的类型。看(四十二)

byte是字节,通常是8位,可以表示256个数字,比如0~255或者-128~127。然后上代码:


#include<iostream>
#include<climits>		//这个头文件里面,包含了关于整型限制的信息,所以需要使用,如果是老式C,则是<limits.h>

using namespace std;

int main()
{
	int n_int = INT_MAX;  //将INT的最大值赋值给变量n_int 
	short n_short = SHRT_MAX;	//将SHRT(即short)的最大值赋值给n_short。不过为什么是SHRT?不懂
	long n_long = LONG_MAX;		//将LONG的最大值,赋值给n_long.
	long long n_llong = LLONG_MAX;	//将LONG LONG的最大值,赋值给n_llong

	//sizeof operator yields size of type or of variable		
	//这里要显示内存字节数(注意不是位数,1内存字节是8位)
	//其中sizeof 是一个操作符(不是函数)指的是返回一个类型或者对象所占的内存字节数。其中char的sizeof最小为1.
	cout << "int is " << sizeof(int) << " bytes." << endl;   //sizeof(类型说明符,数组名或表达式); 注意,要加括号,特别是如果用内置类型名如int就更要加括号了。如果是常量或者表达式,可以不用
	cout << "short is " << sizeof n_short << " bytes." << endl;		//另一种用法, sizeof 变量名。
	cout << "long is " << sizeof n_long << " bytes." << endl;	//同上
	cout << "long long is " << sizeof n_llong << " bytes." << endl;	//同上
	cout << endl;

	cout << "Maximum values(最大值):" << endl;		//显示最大值,其中最大值的表示方式看上面,INT_MAX是int的最大值,SHRT_MAX是short的最大值等,注意SHRT_MAX没有O,而且,全部大写。最小值则为INT_MIN,即MAX换成MIN
	cout << "int: " << n_int << endl;
	cout << "short: " << n_short << endl;
	cout << "long: " << n_long << endl;
	cout << "long long: " << n_llong << endl << endl;

	cout << "Minimum int value = " << INT_MIN << endl;	//显示最小值
	cout << "Bits per byte =" << CHAR_BIT << endl;		//CHAR_BIT为字节的位数(ps:还是不太懂,貌似是每一位是一个1/0开关,8位是8个,所以能表达0~255或者-128~127。16位是65536种数,32位和64位就大得多)
														//一字节(byte)通常是8位的内存单元,1KB是1024字节。一个字母是1字节,一个汉字通常是2字节(如果你存到文本文档里的话)。
	system("pause");
	return 0;

}


输出结果:


int is 4 bytes.
short is 2 bytes.
long is 4 bytes.
long long is 8 bytes.

Maximum values(最大值):
int: 2147483647
short: 32767
long: 2147483647
long long: 9223372036854775807

Minimum int value = -2147483648
Bits per byte =8

其中,short是2bytes,那么就是2*8=16位,所以可以表示65536种数,而int是4bytes,所以是4*8=32位,其最大可以表示65536*65536种数字。

另外,符号常量和表示:

INT_MAX ————int的最大值

INT_MIN ————int的最小值

SINT_MAX ————signed int的最大值

UINT_MAX ————unsigned int的最大值。

 

CHAR_BIT ————char的位数(不是字节数,即需要/8才是字节数)(另外,只能看CHAR的,不能看INT或者SHORT,因为这里意思是一字节等于多少位)

 

 

如果要看short,就换成SHRT(没有O),LONG就换LONG,LONG LONG 就换LLONG(比LONG前面多加一个L)。

看signed的前面就加S,看unsigned 前面就加U。

看最大值后面用MAX,看最小值后面用MIN,

看位数后面就用BIT(位数仅限CHAR_BIT)。

比如CHAR_BIT 的返回值是8

 

在选择用哪个整型的时候,主要取决于以下几个原则:

①通常没有特殊需求的话,就用int;

②如果只需要表示非负数(例如字数,人数),可以用unsigned int;

③如果要表示的数字可能大于16位数的最大值,那么就用long(即使在某些系统上,int可以表示32位。不过用long就可以避免在int只能表示16位的系统上出问题),long可以表示32位。llong则表示64位(应该吧??)

④假如要节约内存,那么在符合条件的情况下,可以用short。例如short a=1;把他从int为16位转移到int为32位的系统上,其占用内存量不变。假如int a=1; 那么转移的时候,占用内存量加倍;

⑤如果只需要一个字节,那么就用char。一个字节是8位(即最大为256)

 


目录
相关文章
|
6月前
|
存储 算法 物联网
int8与long long的深入对比与探讨
int8与long long的深入对比与探讨
|
6月前
|
存储 编译器 程序员
int 和 long 的区别
int 和 long 的区别
|
6月前
|
Python
在Python中,整型(int)
【4月更文挑战第9天】Python的整型(int)数据类型支持无限大小的整数,包括正数、负数和零。可通过加、减、乘、除、取模和幂运算进行操作。使用`int()`函数可进行类型转换,例如将浮点数转为整数。Python还支持位运算,如按位与、或、异或、取反、左移和右移。整型无固定范围,但大规模数据可能消耗大量内存。注意整数除法会丢失小数部分,浮点数转整数会截断。
78 1
|
6月前
|
Java
Java中Long转Int转字符串Int转Long以及Int超出长度判断
Java中Long转Int转字符串Int转Long以及Int超出长度判断
62 0
|
6月前
|
存储 编译器 C++
C++系列-第1章顺序结构-4-整型int
C++系列-第1章顺序结构-4-整型int
|
机器学习/深度学习 自然语言处理 TensorFlow
Long Short-Term Memory,简称 LSTM
长短期记忆(Long Short-Term Memory,简称 LSTM)是一种特殊的循环神经网络(RNN)结构,用于处理序列数据,如语音识别、自然语言处理、视频分析等任务。LSTM 网络的主要目的是解决传统 RNN 在训练过程中遇到的梯度消失和梯度爆炸问题,从而更好地捕捉序列数据中的长期依赖关系。
122 4
|
存储 小程序 程序员
8k字详解整型(int)/字符型(char)/浮点型(float)/有符号(signed)/无符号(unsigned)数据在内存中的存储【程序员内功修炼/C语言】
8k字详解整型(int)/字符型(char)/浮点型(float)/有符号(signed)/无符号(unsigned)数据在内存中的存储【程序员内功修炼/C语言】
147 0
YOLO V5出现RuntimeError: result type Float can‘t be cast to the desired output type long int解决方法
YOLO V5出现RuntimeError: result type Float can‘t be cast to the desired output type long int解决方法
685 0
|
存储 自然语言处理 Java
[oeasy]python0072_整数类型_int_integer_整型变量
[oeasy]python0072_整数类型_int_integer_整型变量
82 0

热门文章

最新文章