`
Cb123456
  • 浏览: 65455 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

两个整数相乘的结果一定正确吗?

    博客分类:
  • java
阅读更多

  在使用Java进行程序设计的时候,当为一个long型变量赋值一个整数常量时,如果这个值超过int型数据的取值范围,程序就会出现编译错误,但是有一种情况程序不会出错的,就是将多个int型数据进行算数运算的结果赋值给long型变量,即使这个运算结果超过int型数据取值范围,程序也不会出现编译错误.

 

 测试1:

 long num=2147483648;给num赋值时,提示出错,超出取值范围.

 

 测试2:

package Test;

public class Test {

	public static void main(String[] args) {
		long num=2147483647*10;
		System.out.println(num);
	}
}

 运行结果:

 
 
 原因:参加计算的两个整数并没有超出int型数据的取值范围,所以不会产生编译错误,结果错误是由于当这两个数进行乘积运算时,是以int型数据进行计算的,所以计算结果是int类型,由于计算结果超出int型数据的取值范围,所以程序发生了溢出,但程序会保留这个溢出的结果,所以输出了-10.

 

 

 测试3:

 

package Test;

public class Test {

	public static void main(String[] args) {
		long num=2147483647*10;
		System.out.println(num);
		long num1=2147483647L*10;
		System.out.println(num1);
	}
}

 运行结果:

 
 
 原因:由于在参加计算的两个整数中的第一整数常量后添加了大写字母L,表示要进行的运算是按长整数进行的,所以程序不会产生溢出,可以计算出正确而的结果.

  • 大小: 6.2 KB
  • 大小: 7.1 KB
1
0
分享到:
评论

相关推荐

    计算两个整数相乘的计算器

    总的来说,这个“计算两个整数相乘的计算器”项目是一个典型的编程教学示例,它涵盖了基本的用户输入处理、数据类型转换、数学运算以及结果输出等核心编程概念。对于初学者来说,这是一次很好的实践机会,可以增强...

    两个10位以上大整数相乘 算法 设计

    测试结果部分未给出,但在实际运行中,这个程序应该能正确地输出两个大整数的乘积。 这种算法设计思路简单明了,适合初学者理解大整数乘法的基本原理,同时也可以作为进一步优化的基础,如使用更高效的数据结构(如...

    大整数相乘(C++实现),理论上整数位数任意

    3. **逐位乘法**:在C++中,这个过程涉及两个数组的逐个元素相乘,然后累加到结果数组。每个乘积都需要与另一个数组的相应位置进行对齐,然后根据需要进行进位操作。 4. **动态分配内存**:由于我们不知道输入的大...

    大整数相乘算法 分治法

    在每次递归过程中,会计算两个部分乘积的贡献,并将结果向左或向右移动适当的位置,以确保最终结果的正确性。 例如,对于两个大整数`X`和`Y`,可以分别拆分为`X1`和`X2`以及`Y1`和`Y2`,其中`X = X1 * 2^n + X2`,`...

    华为的一道面试题,两个长数字相乘

    题目要求计算两个长整数相乘的结果,这里的“长整数”指的是那些无法直接用现有的数据类型(如`int`或`long`)表示的大整数。在本例中,给出的具体数字是`123456789`和`987654321`。由于这两个数字都超出了标准整型...

    50位整数与50位整数相乘

    标题 "50位整数与50位整数相乘" 涉及的是大整数运算中的一个挑战,这通常在计算机编程中遇到,特别是在处理金融、密码学或科学计算等领域。在这种情况下,我们讨论的是两个具有50位长度的整数进行相乘的操作,这超出...

    2-1分数与整数相乘.ppt

    分数和整数相乘是数学中的基本运算,它在日常生活中和工程计算中都有广泛应用。在本课中,我们将深入探讨分数与整数相乘的概念、意义以及计算方法。 首先,复习一下分数与整数相乘的基本问题。例如,问"5个12是多少...

    四则运算(定时核对答案)\长整数相乘

    使用`time(NULL)`获取当前时间,`difftime`计算两个时间点之间的差值,用于测量程序运行时间。 10. **程序循环与选择**: 使用`switch-case`结构处理用户的选择,`goto`语句实现循环。 综上所述,这个程序涉及了...

    JAVA实现大整数相乘

    本篇将深入探讨如何利用Java实现两个大整数的相乘,尤其是面对1000位以上的数字时的高效算法。 首先,Java标准库提供了`java.math.BigInteger`类,它专门用于表示和操作任意大小的整数。`BigInteger`类支持所有基本...

    任意大整数相乘程序(c++实现)

    首先将两个大整数拆分为较小的两部分,然后使用递归计算中间结果,并结合这些结果得到最终乘积。这种方法比简单的位级乘法更高效,尤其是对于非常大的数。然而,本项目可能采用了更直观的“学校乘法”方法,即逐位...

    两个十进制数相乘并显示乘积

    通过上述步骤,我们可以清晰地理解如何使用汇编语言实现两个十进制数的乘法,并将结果显示在屏幕上。此程序不仅展示了基本的算术运算,还涉及到了ASCII码的转换、循环控制和DOS中断服务程序的使用。这对于学习汇编...

    汇编长整数乘法

    长整数乘法就是为了解决这个问题,它涉及将两个大整数分解成若干部分,然后使用传统乘法算法(如Karatsuba或Toom-Cook算法)进行逐段计算,并将结果合并。 1. **基本概念**: - **长整数**:超出处理器原生整数...

    深入分析C++中两个大数相乘结果不正确的问题

    当两个大数相乘,如果乘积超过了这个范围,就会发生溢出,导致结果不正确。 在提供的测试代码中,我们看到 `time_t` 类型被用来存储大数。`time_t` 是一个时间戳类型,其具体实现可能依赖于编译器,但通常它也是一...

    实现两个无符号的八位二进制数相乘

    实现两个八位二进制数相乘的基本算法称为“长乘法”,这与我们学校里学习的十进制乘法类似。这个过程涉及逐位相乘,然后将结果累加。在二进制中,每位乘以另一位,得到的结果可能是16位(2个8位数的两倍),因此我们...

    两个很大的整形数相乘

    在编程领域,尤其是在处理数值...总之,处理两个超大数相乘的问题,需要理解大数表示和高效算法,并能够熟练运用C语言进行编程实现。通过学习和实践,不仅可以掌握这一技能,还能为解决其他复杂计算问题打下坚实基础。

    长整型相乘的实现程序

    这个压缩包中的内容显然是一个关于长整型相乘的实现程序,包含两个源文件(test.cpp、LongIntMultiply.cpp)和一个头文件(LongIntMultiply.h)。这里我们将详细讨论长整型的概念、实现方法以及可能涉及的算法。 1....

    五年级数学上册二小数乘法与除法(一)5《小数与整数相乘》同步练习(无答案)浙教版.pdf

    总结,小数与整数相乘是五年级数学课程的一个基础知识点,它不仅要求学生掌握正确的计算方法,也要求学生理解小数点移动的规则和小数乘法的含义。通过大量的练习,学生可以灵活运用这些知识来解决各种与小数相关的...

    两个大数相乘算法

    大数相乘算法是基础且关键的一环,它涉及到如何高效地计算两个超过普通整型变量所能表示范围的数的乘积。本主题将深入探讨如何用C语言实现大数相乘,并展示结果。 C语言本身并不直接支持大数运算,但我们可以自定义...

    大数相乘c语言

    标题“大数相乘c语言”和描述“两个超过计算机所能表示的数相乘,利用数组存储大数,进行相乘”所提及的就是这种技术。 大数相乘的基本思路是将每个大数拆分成数组中的每一位,然后按照传统的笔算乘法方法进行计算...

Global site tag (gtag.js) - Google Analytics