int到long为啥不用强制转换

怎么把long类型转换成int?

怎么把long类型转换成int?

由int类型转换为long类型是向上转换,可以直接进行隐式转换,但由long类型转换为int类型是向下转换,可能会出现数据溢出情况:  主要以下几种转换方法,供参考:  
一、强制类型转换/*java*/long ll 300000 int ii (int)ll  
二、调用intValue()方法/*java*/long ll 300000 int ii new Long(ll).intValue()  
三、先把long转换成字符串String,然后在转行成Integer/*java*/long ll 300000 int ii ((ll))  这三种方法都比较简单明了。

为什么char可以转int?

因为电脑不识别字符,只认识二进制数字,所以用整数来代替字符,比如用65表示#39A#39,也就是ASCII码,所以,当把#39A#39转换为int的时候可以转,而且结果是65。
在以下类型链上,数据的表示方式相同,可以互相转换。左边的类型小于右边的类型。
char-gtshort-gtint-gtlong
从左边往右边转换,不会丢失精度;从右边往左边转换,可能丢失精度。

C语言为什么要定义short,int,long这么多整数类型?

简单来说,一句话就是,为了区分内存分配的大小并保持指针操作一致性和简单化,事实上c语言只要一种数据类型就是char就够了,其它任何类型都可以当作是它的别名用于区分长度,避免指针操作位移操作上的问题和难度