`
ihuashao
  • 浏览: 4813527 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

不用比较运算符,判断int型的a,b两数的大小

阅读更多

看到一个人的帖子,想了一下,然户发了一个帖子。原帖见:看到一个面试题,大家来讨论下!

其实出现问题的情况,只存在于异号两数想减使得结果超过了int型的最大或最小值,因此导致了符号位丢失。所以在这个基础上想到了转型。就是把int型转成long型的,那么符号位就保存在了第64位上了,同时也不会丢失符号位。贴代码(借鉴了一个网友的方法,用数组来存结果,这样就不用==比较符了。这个方法在Core Java中经常用到。):

当然了,思考都是有过程的。开始时,最先想到的是两数想减,看符号位。我想大家也都会想到这一点:

用了==先不说,一般情况下都能得出正确的结果;但是先上面代码那样a是int型的最小值,而b是int型的最大值的话,就会有越界。因此,在这个代码的基础上,增加限制(符号相同,就减,这样安全,没有问题;符号相反的话,如果a是正的,直接得出结果。):

当然了,怎么看还是第一段代码简洁。思考无极限,是不是还有别的解法呢?

分享到:
评论

相关推荐

    C运算符比较符详细表

    在C语言中,运算符是编程中的重要组成部分,它们用于执行不同的操作,如数学运算、比较、逻辑判断、赋值等。以下是对C语言中运算符的详细解释: 1. **算术运算符**: - `+`:用于加法,例如 `1+2` 结果为 `3`。 -...

    C语言运算符和结合型.pdf

    - **示例**:`int remainder = a % b;` #### 17. 加法运算符 `+` - **含义**:执行加法运算。 - **对象个数**:2 - **结合方向**:自左至右 - **示例**:`int sum = a + b;` #### 18. 减法运算符 `-` - **含义**:...

    Java利用三目运算符比较三个数字的大小

    这个代码使用三目运算符来比较 a、b 和 c 的大小,并将较大值赋值给 a。然后,我们可以使用 System.out.println(a) 来输出 a 的值。 二、嵌套三目运算符比较三个数字的大小 我们也可以使用嵌套三目运算符来比较三...

    比较两个数的大小,有问题希望一起交流,C#.NET

    在C#.NET编程环境中,比较两个数的大小是常见的操作,尤其对于新手开发者来说,理解其背后的逻辑至关重要。本文将深入探讨如何在C#中进行数值比较,以及可能遇到的问题和解决方案。 首先,C#提供了多种方式来比较两...

    c语言 运算符

    关系运算符用于比较两个值的大小,返回一个布尔结果。C语言支持的关系运算符有: - `>`(大于) - `(小于) - `>=`(大于等于) - `(小于等于) - `==`(等于) - `!=`(不等于) 例如: ```c bool isEqual = ...

    c语言之运算符练习题.docx

    **练习题**:编写一个程序,判断两个整数的大小关系,并输出相应的信息。 #### 四、逻辑运算符 逻辑运算符用于组合多个条件表达式。常用的有逻辑与(&&)、逻辑或(||)和逻辑非(!)。 ```c int a = 10, b = 5; ...

    Java中常见的几种运算符.doc

    这些符号可以用来比较两个值的大小关系,返回一个布尔值。 例如:int a = 10; int b = 5; boolean c = a > b; // c 的值将是 true 三、位运算符 位运算符是指用于执行位运算的符号,例如 &、|、^ 等。这些符号...

    C语言运算符优先级和结合性表

    - 示例:`a == b` 表示判断 `a` 是否等于 `b`。 14. **按位与、或、异或运算符**:`&`、`|` 和 `^` - 含义:按位与、按位或和按位异或操作。 - 对象个数:2 - 结合方向:自左至右 - 示例:`a & b` 表示按位与...

    Java 三目运算符

    此语句将比较`a`与`b`的大小,如果`a`小于`b`,则`x`的值为`a`,否则`x`的值为`b`。 #### 三、具体应用 1. **简单的条件判断**: ```java char ch = (x == y) ? 'Y' : 'N'; ``` 如果`x`等于`y`,则`ch`赋值为`...

    verilog 比值的大小

    这些运算符用于比较两个数值的大小或相等性。例如,如果你有两个寄存器`reg a, b;`,你可以使用`a < b`来判断`a`是否小于`b`。 以下是一个简单的Verilog模块,展示了如何进行大小比较: ```verilog module compare...

    C语言运算符优先级列表.pdf

    int mul = a * b; // 乘法 int mod = a % b; // 取模 ``` #### 六、加减运算符 `+ -` - **描述**:分别代表加法和减法。 - **结合方向**:左到右。 - **示例**: ```c int a = 10; int b = 5; int sum = a ...

    01输出两个int数中的最大值.docx

    ### 输出两个int数中的最大值 #### 背景与目的 在计算机编程中,比较数值大小并找出其中的最大值是一项基本且常见的操作。这项技能不仅适用于初学者的基础练习,也是构建更复杂算法的重要基石之一。本文将通过一个...

    C++ 运算符优先级列表 pdf

    - **功能**:比较两个数是否满足大于等于关系。 - **示例**: ```cpp if (i >= 42) // 如果i大于等于42则执行条件语句。 ``` - **结合性**:从左到右。 #### 8. 等于运算符 - **等于** `==` - **功能**:...

    用c++语言编写的比较两个数的程序

    在C++中,比较两个数通常涉及到基本的数据类型,如整型(int)、浮点型(float/double)等。比较操作主要通过关系运算符来完成,这些运算符包括:`(小于)、`>`(大于)、`(小于等于)、`>=`(大于等于)以及`==`...

    第三节 运算符 流程控制.docx

    以上代码示例展示了如何接收用户输入的两个数,并根据它们的大小关系进行判断和输出。 通过理解并熟练掌握这些运算符和流程控制语句,开发者能够编写出更复杂的程序,实现更丰富的功能。在实际编程中,它们是构建...

    c代码-5.功能:编写比较a、b两个数的大小,且把大者赋给max,小者赋给min。

    这个任务的目的是编写一个程序,它接收两个整数(a 和 b),然后判断这两个数的大小,将较大的值存储到变量max中,较小的值存储到变量min中。下面我们将详细讨论如何实现这个功能以及相关的C语言知识点。 1. **基本...

    03.C语言的运算符.pdf

    4. 关系运算符:用于比较两个操作数之间的关系,结果为布尔值,包括大于(>)、小于(<)、大于等于(>=)、小于等于()、等于(==)、不等于(!=)等。 5. 逻辑运算符:用于逻辑运算,包括逻辑与(&&)、逻辑或(||)、逻辑非(!)等...

    Java 运算符 动力节点Java学院整理

    **关系运算符** 用于比较两个值的大小,包括等于==(等于),不等于!=(不等于),大于>(大于),小于<(小于),大于等于>=(大于等于)和小于等于(小于等于)。例如: ```java int a = 5, b = 3; boolean isGreater = a > b;...

    C语言运算符优先级 详细列表

    - 示例:`int x = (a + b) * c;` - **成员选择 (`.`)**:用于访问结构体或联合中的成员。 - 示例:`struct person p; int age = p.age;` - **成员选择 (指针 `->`)**:用于通过指针访问结构体或联合中的成员。 - ...

    用VC#语言编写的比较大小的例子

    在编程领域,比较大小是基础操作之一,尤其在C#这样的面向对象的编程语言中,这一功能被广泛应用于各种逻辑判断和算法实现。本例子通过VC#(Visual C#)来演示如何比较多个数值的大小关系,这有助于理解C#的基础语法...

Global site tag (gtag.js) - Google Analytics