首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

相关GetAt(),放在心中已久的疑问

2013-12-02 
有关GetAt(),放在心中已久的疑问CString m_strResultint m nmm_strResult.GetAt(n)-0查看MSDN,GetAt

有关GetAt(),放在心中已久的疑问
CString m_strResult;

int m n;
m=m_strResult.GetAt(n)-'0';


查看MSDN,GetAt()返回的是个TCHAR类型数据,为嘛减去后面的字符后就能变成整数了呢
[解决办法]
字符实际就是一个编码,本质就是一个数字,不减去'0'也是一个整数,只是进去'0'字符编码就直接转换为对应的数值(一种技巧)
比如'3'-'0'=3
[解决办法]
TCHAR就是char或wchar_t ,这同样是一个数,'c'-'0'就是看‘0’到‘c'的偏移
[解决办法]
如果数字是 0-9 ,可以
如果 是 A-F ,就不对了 (再 -7)
[解决办法]
如果你认真观察ascii码的话,其实字符'0'~'9'的ASCII码就是48到到57,所以,如果一个字符在这个区间,那么减去'0',正好得到的差值就是表示的字符
[解决办法]
ascii字符 “0” = 0x30,“1”= 0x31 ,所以 “1” - “0” = 1

热点排行