注册 登录
编程论坛 VB.NET论坛

比较大小的不解地方?

a8544948 发布于 2008-11-23 12:49, 1614 次点击
"1234">"129"为什么返回的是False

这是如何比较的?
"ab c">="abc"大于等于 为什么返回的也是
False
4 回复
#2
谁与争疯2008-11-23 12:55
有双引号的是字符串,不知道要比什么码?
#3
jxyga1112008-11-24 08:25
回复 楼主 a8544948 的帖子
字符型比較大小有什么意思?
#4
bygg2008-11-24 12:21
你这是字符串,不是数字.
字符串的比较是一位一位的比的
#5
darkphx2008-11-28 13:56
這是我轉來的
如果单纯比较长度,直接调用类似于strlen()之类的函数就可以,加以比较即可.

如果比较字符串的大小,则比较的是字符的ASCII编码的大小.你搜索一下ASCII码表就可以得知每一个ASCII字符的大小. 参考http://www.

在比较时,设置一个计数器,从零开始,一直循环到最短的那个字符结束,一位一位进行比较,

1.如果 字符串1的第n位的ASCII码值 等于 字符串2的第n位的ASCII码值
则 继续比较下一位
2.如果 字符串1的第n位的ASCII码值 大于 字符串2的第n位的ASCII码值
则 输出结果:1,表示字符串1 > 字符串2;
3.如果 字符串1的第n位的ASCII码值 小于 字符串2的第n位的ASCII码值
则 输出结果:-1 表示字符串1 < 字符串2;
4.如果 每一位的ASCII码值都相等,而且长度相同,
则 输出结果:0 表示字符串1 == 字符串2;
5.如果 字符串1是字符串2的前m位,例如 abcd 与abcdef 比较,
则 字符串1<字符串2.
原因是,到第5位时,字符串1的ASCII值是0,而字符串2的ASCII值为'e',即十进制的101,当然是字符串2大了.


具体到 cds和lesoqd

从第一位开始,'c'和'l'比较,当然是'c' < 'l'了,所以,"cds" < "lesoqd"
常用的几位ascii的顺序从小到大为:

0..9, A..Z, a..z.
1