两个浮点值(IEEE 754 binary64)可以作为整数比较吗?例如:
long long a = * (long long *) ptr_to_double1,
b = * (long long *) ptr_to_double2;
if (a < b) {...}
假设long long和double的大小相同。
假设我想要一个接受两个浮点数(x和y)的函数,并且我希望不使用它们的float表示,而是使用它们作为32位unsigned int的逐位表示来比较它们。也就是说,像-495.5这样的数字具有位表示0b11000011111001011100000000000000或0xC3E5C000作为float,而我有一个具有相同位表示的unsigned int (对应于十进制值3286614016,我不关心它)。有没有什么简单的方法可以让我只使用它们各自的unsigned int副本中包含的信息来对这些浮点数执行像<=这样的操作?
我的问题听起来很愚蠢,但我真的无法理解和解决这个问题。
我试着找出名单上最大的数字。只有两个数字,我的代码:
list = ['7', '10']
a = list[0]
b = list[1]
if a > b :
print('a')
else :
print('b')
当我运行它时,我得到'a',但为什么?
我现在正在学习Rust,我正在使用这个简单的Erathostenes实现筛子: fn get_primes(known_primes: &Vec<i64>, start: i64, stop: i64) -> Vec<i64> {
let mut new_primes = Vec::new();
for number in start..stop {
let mut is_prime = true;
let limit = (number as f64).sqrt() as i64;
for
我有一个二维字符串数组。字符串数组中有一些字符串和一些整数。我想把数组的两个位置比较在一起。
示例:
If StringArray(1, 5) > StringArray(1, 6) Then
MsgBox "Is first number is bigger"
End if
我的调试器说:
StringArray(1,5) = 150
StringArray(1,6) = 3
StringArray(1, 5) > StringArray(1, 6) = False
有人知道为什么结果是假的吗?StringArray(1, 5)肯定更大。有什么问题
我有两个变量:
unsigned short a,b;
/* When I compare them with a magic number like this */
if (a > 8U) /* all fine*/
/* But when I make the following comparison: */
if ((a-b) > 8U) /* warning: comparison between signed and unsigned*/
/* And when I make the following comparison: */
if ((a-b)
假设您有一条带有重载的相等运算符的记录
TSomeRecord = record
Value : String;
class operator Equal(Left, Right : TSomeRecord) : Boolean;
end;
(实现会比较字符串值)。如果根据重载操作符向列表中添加两个相等的记录,我希望Contains方法在这两种情况下都返回true。但实际上,泛型列表似乎只是比较记录的内存内容,而不是应用重载的相等运算符。
var
List : TList <TSomeRecord>;
Record1,
Record2 : TSomeRecord