这可能听起来很疯狂,但我正在使用楼层的楼层编号,其中-0为楼层,-0A,B和C依旧。
我的用户随机输入楼层数据。最后,我应该对这些楼层号码的数组进行排序。我发现即使我输入-0作为楼层编号并尝试对其进行排序..它将其排序为0因为计算机-0仍为0。
如何定义-0和-1< -0< 0?
答案 0 :(得分:2)
根据定义,您不再使用整数,因为-0 != 0
在整数领域没有意义。
所以,是的,您将不得不定义自己的类型并实现自己的排序规则。简单地将它们存储为字符串,然后实现排序块以对它们的数组进行排序是很简单的。
你可以沿着使用花车的路径走下去,这样你就可以有0楼和0楼,然后是圆形展示。但是那种恶作剧会在维护者之后引导维护人员给你打电话给你不愉快的名字(这有时候还可以)。 :)
答案 1 :(得分:1)
到目前为止,所有答案都是建议你自己的类型/功能,可能是字符串。
字符串可以工作但你可以从浮点中获取一个想法并将它们存储为符号(布尔或偶数位标志)和幅度(无符号整数类型,8或16位应该足够)。
比较只是比较符号,然后根据需要比较大小。
您可以使用struct
这样的类型,它将为您提供与整数和实数类型相同的值语义,并避免对象分配。
如果还有一个字母(" -0作为楼层,-0A,B和C等等")可以是结构中的第三个字段,可能是char
,你仍然可以拥有价值语义。
HTH