为什么我得到一个int数太大而long分配给min和max?
/*
long: The long data type is a 64-bit signed two's complement integer.
It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of         9,223,372,036,854,775,807 (inclusive).
Use this data type when you need a range of values wider than those provided by int.
*/
package Literals;
public class Literal_Long {
     public static void main(String[] args) {
        long a = 1;
        long b = 2;
        long min = -9223372036854775808;
        long max = 9223372036854775807;//Inclusive
        System.out.println(a);
        System.out.println(b);
        System.out.println(a + b);
        System.out.println(min); …嗨,我很难理解为什么这不起作用
if(Long.parseLong(morse) == 4545454545){
     System.out.println("2");
}
莫尔斯只是一串数字.问题是它说Integer数字太大了:4545454545,但我确定Long可以比这长得多.
解决方案:
事实证明代码本身(可能)"没有错"; 这只是效率低下.如果我的数学是正确的,如果我让它继续运行它将在2011年10月14日星期五之前完成.我会告诉你的!
警告:如果您尝试解决Project Euler#3,这可能包含剧透.
问题是这样的:
13195的主要因素是5,7,13和29.
600851475143的最大主要因素是什么?
这是我尝试解决它.我只是从Java和编程开始,我知道这不是最好或最有效的解决方案.
import java.util.ArrayList;
public class Improved {
    public static void main(String[] args) {
        long number = 600851475143L;
        // long number = 13195L;
        long check = number - 1;
        boolean prime = true;
        ArrayList<Number> allPrimes = new ArrayList<Number>();
        do {
            for (long i = check - 1; i > 2; i--) {
                if (check % i == 0) {
                    prime = false;
                }
            }
            if (prime == true && number % check …  public static void gramstoAtoms()
  {
   System.out.println("Enter Amount of grams");
   Scanner keyboard = new Scanner(System.in);
   long x = keyboard.nextLong();
   System.out.println("Enter Unit Grams");
   long y = keyboard.nextLong();
   long result = x/y;
   long answer = result*60200000000000000000000;
   System.out.println(answer + "Atoms");
  }
如何更改此代码,以便我不会得到一个整数太长的错误?
这是我的代码:
public static boolean isPrime(long num)
    {
        for(long i=2; i<=num/2; i++)
        {
            if(num%i==0)
            {
                return false;
            }
        }
        return true;
    }
    public static long findLargestPrimeFactor(long n)
    {
        long max=0;
        for(long factor=2; factor<n; factor++)
        {
            if(n % factor==0)
            {
                if(isPrime(n/factor)==true)
                {
                    max=factor;
                }
            }
        }
        return max;
    }
但是,当我运行它时,它表示整数600851475143太大了.谁能帮我?
我正在编写一个代码,我试图在long变量中赋值.但java编译器显示的错误是整数过大.我试图存储600851475143在long类型依然.
class Sum {
    static public void main(String args[]){
        long num=600851475143;
    }
}
我已经为我的问题取出了不相关的代码,并留下了与我的问题相关的内容.它表明整数太大了.我已将当前时间转换为毫秒,我试图以毫秒为单位添加一个月,两周和一周来实现"过期日期".如果有人知道如何使用Long而不是int?我很困惑,因为我的日期不是作为一个整数被宣布?
它表示'dateExpired = dateExpired + 2628000000;'的错误.
public class VIP implements Serializable {
    private Date dateExpired;
    public VIP(Date dateExpired) {
        this.dateExpired = new Date(Calendar.getInstance().getTimeInMillis());
    }
    public Date getDateExpired() {
        return dateExpired;
    }
    public void setDateExpired(String ticketType) {
       if (ticketType.equals("Gold")) {
            dateExpired =  dateExpired + 2628000000;
        } else if (ticketType.equals("Silver")) {
            dateExpired = dateExpired + 1209600000;
        } else {
            dateExpired = dateExpired + 604800000;
        }
    }
}