user-0 提问: 字符串的asc码值怎么算，，也就是说怎么比较两个字符串的大小

回复:
user: user-0
content: 引用 26 楼 xhw88398569 的回复:[quote=引用 25 楼 lovesmiles 的回复:] [quote=引用 24 楼 u012632288 的回复:] [quote=引用 23 楼 xhw88398569 的回复:] [quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote] 字符串没有ASCII码！！！只有字符才有，字符串的比较就是分成一个一个字符比较，第一个和第一个比，如果二个相等，就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0)  'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂，，操作数和移动位数  为什么要这样。。。[/quote]  别看他的，不知道他在写什么。我给你举个例子： "abc"和"abd"比较。 首先比较第一个字母，a,ASCII码是97.大家都一样、 比较第二个字母，b,ASCII是98，大家都一样。 比较第三个字母，前面的是c,ASCII是的99，后面的是d,ASCII是100, 100比99大，于是返回结果abd>abc. 就是这样。明白没[/quote]楼主好像说的是整体换成整数数值的大小，不是strcmp()。我也不知道楼主为什么这么想[/quote]   对，就是整体换成数值大小怎么算，操作数和移动位数 怎么弄的

user: user-0
content: 引用 29 楼 ChaosStudyC 的回复:[quote=引用 20 楼 zhao4zhong1 的回复:] 这8个人的统一身份证号码是多少啊？ 我也想说这句..[/quote]  什么意思

user: user-1
content: 引用 20 楼 zhao4zhong1 的回复:这8个人的统一身份证号码是多少啊？ 我也想说这句..

user: user-1
content: 细说要从数据类型说起.我们知道每个变量都是储存在内存的特定空间内，比如我定义一个变量int a=98；那么a就以补码的形式储存在某个内存地址上，如果我们强行将a的数据类型变为字符型（显示转换）的话，在内存上，这个a的补码是不变的，就是说a的实际值没有改变，但是如果用cout输出到控制台上就可以看见这个98变成了ASCII对应的 b 了，ASCII就是这样的转换关系。如果要用strcmp函数来比较两个字符串的大小，首先将两个字符串的第一个字符进行比较，就拿你的例子来说，“aaa”的第一个字符是‘a’，“bb”的第一个字符是‘b’，那么a的ASCII码是97，而b的ASCII是98，所以函数就会返回-1，再假如，如果两个字符串分别是“aba”和“aca”的话，首先比较第一个字符，两个都是a，那么就会比较第二个字符，在第二次比较里面，b的ASCII是98，c的ASCII是99，那么就得出“aba”是比“aca”小，所以函数就会返回-1。其他也就这样如此类推了

user: user-2
content: 引用 8 楼 u012632288 的回复:[quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote] 字符串没有ASCII码！！！只有字符才有，字符串的比较就是分成一个一个字符比较，第一个和第一个比，如果二个相等，就第二个和第二个比。一直比出一个大小为止。

user: user-2
content: 引用 26 楼 xhw88398569 的回复:[quote=引用 25 楼 lovesmiles 的回复:] [quote=引用 24 楼 u012632288 的回复:] [quote=引用 23 楼 xhw88398569 的回复:] [quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote] 字符串没有ASCII码！！！只有字符才有，字符串的比较就是分成一个一个字符比较，第一个和第一个比，如果二个相等，就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0)  'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂，，操作数和移动位数  为什么要这样。。。[/quote]  别看他的，不知道他在写什么。我给你举个例子： "abc"和"abd"比较。 首先比较第一个字母，a,ASCII码是97.大家都一样、 比较第二个字母，b,ASCII是98，大家都一样。 比较第三个字母，前面的是c,ASCII是的99，后面的是d,ASCII是100, 100比99大，于是返回结果abd>abc. 就是这样。明白没[/quote]楼主好像说的是整体换成整数数值的大小，不是strcmp()。我也不知道楼主为什么这么想[/quote] 你看楼主问的问题就知道了，asii码是什么都没有搞懂

user: user-3
content: 引用 25 楼 lovesmiles 的回复:[quote=引用 24 楼 u012632288 的回复:] [quote=引用 23 楼 xhw88398569 的回复:] [quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote] 字符串没有ASCII码！！！只有字符才有，字符串的比较就是分成一个一个字符比较，第一个和第一个比，如果二个相等，就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0)  'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂，，操作数和移动位数  为什么要这样。。。[/quote]  别看他的，不知道他在写什么。我给你举个例子： "abc"和"abd"比较。 首先比较第一个字母，a,ASCII码是97.大家都一样、 比较第二个字母，b,ASCII是98，大家都一样。 比较第三个字母，前面的是c,ASCII是的99，后面的是d,ASCII是100, 100比99大，于是返回结果abd>abc. 就是这样。明白没[/quote]楼主好像说的是整体换成整数数值的大小，不是strcmp()。我也不知道楼主为什么这么想

user: user-2
content: 引用 24 楼 u012632288 的回复:[quote=引用 23 楼 xhw88398569 的回复:] [quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote] 字符串没有ASCII码！！！只有字符才有，字符串的比较就是分成一个一个字符比较，第一个和第一个比，如果二个相等，就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0)  'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂，，操作数和移动位数  为什么要这样。。。[/quote]  别看他的，不知道他在写什么。我给你举个例子： "abc"和"abd"比较。 首先比较第一个字母，a,ASCII码是97.大家都一样、 比较第二个字母，b,ASCII是98，大家都一样。 比较第三个字母，前面的是c,ASCII是的99，后面的是d,ASCII是100, 100比99大，于是返回结果abd>abc. 就是这样。明白没

user: user-0
content: 引用 23 楼 xhw88398569 的回复:[quote=引用 22 楼 xhw88398569 的回复:] [quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote] 字符串没有ASCII码！！！只有字符才有，字符串的比较就是分成一个一个字符比较，第一个和第一个比，如果二个相等，就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0)  'a','b','\0'[/quote]我把操作数和移动位数写反了[/quote] 其实我看不懂，，操作数和移动位数  为什么要这样。。。

user: user-4
content: ASCII码是字符串的内存数值. 所以 char  buf1[] = "aaa"  其内存数值就已经是ASCII, 按顺序比较即可.

user: user-3
content: 引用 22 楼 xhw88398569 的回复:[quote=引用 19 楼 lovesmiles 的回复:] [quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote] 字符串没有ASCII码！！！只有字符才有，字符串的比较就是分成一个一个字符比较，第一个和第一个比，如果二个相等，就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0)  'a','b','\0'[/quote]我把操作数和移动位数写反了

user: user-3
content: 引用 19 楼 lovesmiles 的回复:[quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote] 字符串没有ASCII码！！！只有字符才有，字符串的比较就是分成一个一个字符比较，第一个和第一个比，如果二个相等，就第二个和第二个比。一直比出一个大小为止。[/quote]比如说“ab”就是(16<<97) + (8<<98) + (0<<0)  'a','b','\0'

user: user-5
content: C:\Program Files\Microsoft Visual Studio\VC98\CRT\SRC\STRCMP.C /*** *strcmp.c - routine to compare two strings (for equal, less, or greater) * *       Copyright (c) 1985-1997, Microsoft Corporation. All rights reserved. * *Purpose: *       Compares two string, determining their lexical order. * *******************************************************************************/  #include <cruntime.h> #include <string.h>  #ifdef _MSC_VER #pragma function(strcmp) #endif  /* _MSC_VER */  /*** *strcmp - compare two strings, returning less than, equal to, or greater than * *Purpose: *       STRCMP compares two strings and returns an integer *       to indicate whether the first is less than the second, the two are *       equal, or whether the first is greater than the second. * *       Comparison is done byte by byte on an UNSIGNED basis, which is to *       say that Null (0) is less than any other character (1-255). * *Entry: *       const char * src - string for left-hand side of comparison *       const char * dst - string for right-hand side of comparison * *Exit: *       returns -1 if src <  dst *       returns  0 if src == dst *       returns +1 if src >  dst * *Exceptions: * *******************************************************************************/  int __cdecl strcmp (         const char * src,         const char * dst         ) {         int ret = 0 ;          while( ! (ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)                 ++src, ++dst;          if ( ret < 0 )                 ret = -1 ;         else if ( ret > 0 )                 ret = 1 ;          return( ret ); }

user: user-5
content: 这8个人的统一身份证号码是多少啊？

user: user-0
content: 引用 13 楼 xhw88398569 的回复:[quote=引用 8 楼 u012632288 的回复:] [quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote]字符ascii就那么一百多个，照你的意思“sbc”和“abb”在内存中占四个字节，每个字节对应相应的ascii码，每个字符依次偏移8位，一共是32位。你转成整形输出不就知道了[/quote] 你的回答好像是我想要的，，可以详细点吗，，举一个例子。

user: user-6
content: lz你看书没啊，怎么会提出这种不存在的东西

user: user-7
content: 引用 3 楼 u012632288 的回复:字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 是先比较第一个字符的ascll码，如果相等再继续比较下一个，一个个字符比较的，网上应该很多strcmp()函数的具体实现

user: user-8
content: ascll吗是对应每一个字符的

user: user-3
content: 引用 8 楼 u012632288 的回复:[quote=引用 3 楼 u012632288 的回复:] 字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少， 我现在想知道字符串的asc值怎么计算。。求大神。。注意是字符串 。。比如说  sbc 和abb 的asc码值怎么计算，，计算机制是什么[/quote]字符ascii就那么一百多个，照你的意思“sbc”和“abb”在内存中占四个字节，每个字节对应相应的ascii码，每个字符依次偏移8位，一共是32位。你转成整形输出不就知道了

user: user-3
content: 引用 3 楼 u012632288 的回复:字符串的asc码值怎么计算，，，例如  aa的asc值是多少，，sd的是多少，你是想比字符ascii，还是想把他们转换成整形对比啊？“aa”这个ascii码没听过，水平太低了没见过