java中long类型问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中long类型问题相关的知识,希望对你有一定的参考价值。
long l=1024*1024*1024*4;//这里输出是0
System.out.println(Long.toBinaryString(l));
long old2=1024*1024*1024*4L;//为什么这里不是零,求教
System.out.println(Long.toBinaryString(old2));
long oldl=1024*1024*1024*4*2L;//这里输出是0
System.out.println(Long.toBinaryString(oldl));
第二个因为是1024*1024*1024还未达到int类型最大值,这时给它乘一个4L(注意,这个是long类型),所以结果是long类型,不存在上面那个情况。
第三个,由第一个知道,1024*1024*1024*4结果是int类型0,0乘任何数必然还是0
纯手打,望采纳 参考技术A 乘法的过程中int类型溢出了,注意是在最后的结果才会自动转换成long型,1024*1024*1024*4 刚好是2的32次方,所以结果为0
第二个因为最后一个4L表示Long型,所以在最后一次乘的时候已经转换成long,结果不会出现溢出
第三个与第一个一样也是int型溢出导致,最后乘以2L等于0*2L,结果自然为0
将java怎么将long类型的时间转换成年月日的形式
用java代码实现:
public static String longToDate(long lo)
Date date = new Date(lo);
SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return sd.format(date);
资料拓展:
长整型(long)是计算机程序语言,是程序设计中数据类型的一种表现方式,一般情况下用long 表示长整型。 long 有符号64位整数,范围是-2^63-2^63 -1 Int64。
参考技术A 多看点JDK API。常用的时间转换形式:long <==>Date <==>String
long =>Date :new Date(longValue);
Date =>String:new SimpleDateFormat("yyyy-MM-dd").format(date); 参考技术B
其实就是将毫秒数转换为日期
具体方法
/**
* 把毫秒转化成日期
* @param dateFormat(日期格式,例如:MM/ dd/yyyy HH:mm:ss)
* @param millSec(毫秒数)
* @return
*/
pubic static String transferLongToDate(String dateFormat,Long millSec)
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
Date date= new Date(millSec);
return sdf.format(date);
import java.util.Formatter;
import java.util.Locale;
public class Bdzd
/**
* @param args
*/
public static void main(String[] args)
String datestr = getDateStr(System.currentTimeMillis());
System.out.println(datestr);
private static String getDateStr(long millis)
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(millis);
Formatter ft=new Formatter(Locale.CHINA);
return ft.format("%1$tY年%1$tm月%1$td日%1$tA,%1$tT %1$tp", cal).toString();
参考技术D SimpleDateFormat 楼上有回答的
以上是关于java中long类型问题的主要内容,如果未能解决你的问题,请参考以下文章