C# 如何 比较两个数的大小,不用比较符
来源:学生作业帮 编辑:百度作业网作业帮 分类:数学作业 时间:2024/05/03 10:17:40
C# 如何 比较两个数的大小,不用比较符
比如 怎么比较1跟2哪个大?有人说通过位移转换2进制,在怎么比较的?求详解.想以此了解比较与=运算哪个速度快一些
比如 怎么比较1跟2哪个大?有人说通过位移转换2进制,在怎么比较的?求详解.想以此了解比较与=运算哪个速度快一些
'a和b(Integer)是要比较的数
Dim delta As Integer
delta = a - b
If delta = 0 Then
'两数相同
Else
If delta < 0 Then
'a小
Else
'b小
End If
End If
再问: C#
再答: 一样的 int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int delta = a - b;
if (delta.Equals(0))
{
// 两数相同
}
else
{
if (delta.Equals(Math.Abs(delta)))
{
// a大
}
else
{
//b大
}
}
再问: 写成这个我看懂了,wo可能没说清,不能使用比较机制Equals的比较机制是什么?这个比较机制中用不用比较运算符?无论是字符,数字,本质是不是都是二进制数,他们怎么比较的,这个机制是什么
再答: Equals是比较两个对象是否相同,对于普通类型来说,它仅仅比较两个引用是否相同,但对于值类型来说,它的比较机制比较复杂,还要用到反射机制,所以它和==还是有区别的。详细请看这里:http://kb.cnblogs.com/page/107604/ 我的方法是求两个数的差,若a大则差为正,若b大则差为负。正数的绝对值等于它本身,复数的绝对值则等于它的相反数。由于C#是运行在CLR平台上的,级别较高,个人认为直接弄二进制不太方便。
Dim delta As Integer
delta = a - b
If delta = 0 Then
'两数相同
Else
If delta < 0 Then
'a小
Else
'b小
End If
End If
再问: C#
再答: 一样的 int a = int.Parse(Console.ReadLine());
int b = int.Parse(Console.ReadLine());
int delta = a - b;
if (delta.Equals(0))
{
// 两数相同
}
else
{
if (delta.Equals(Math.Abs(delta)))
{
// a大
}
else
{
//b大
}
}
再问: 写成这个我看懂了,wo可能没说清,不能使用比较机制Equals的比较机制是什么?这个比较机制中用不用比较运算符?无论是字符,数字,本质是不是都是二进制数,他们怎么比较的,这个机制是什么
再答: Equals是比较两个对象是否相同,对于普通类型来说,它仅仅比较两个引用是否相同,但对于值类型来说,它的比较机制比较复杂,还要用到反射机制,所以它和==还是有区别的。详细请看这里:http://kb.cnblogs.com/page/107604/ 我的方法是求两个数的差,若a大则差为正,若b大则差为负。正数的绝对值等于它本身,复数的绝对值则等于它的相反数。由于C#是运行在CLR平台上的,级别较高,个人认为直接弄二进制不太方便。