数字、字符、字符串?|C++与Python中的常用转换函数
计算机底层是一堆逻辑电路,记录信息只能以数值的形式。

创新互联建站服务项目包括沁水网站建设、沁水网站制作、沁水网页制作以及沁水网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,沁水网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到沁水省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
因此对于一个字符 a ,计算机记录其为值 97 。
这个值与字符的对应关系是人们约定好的,这里使用的对应表为 ASCII Table 。
在 ASCII Table 里, a 对应 97 , b 对应 98 ... 字符 1 对应数值 49 。
之所以写这篇笔记是因为一些算法题的要求,比如,我们需要统计 26 个小写英文字母出现频率,在算法题中,完全没必要开一个哈希表,开一个 26 长度的整数数组就行。
- int cnt[26];
 
当我们读入一个字符时,则进行一次强制类型转换,就实现了哈希表功能。
- char c;
 - cin >> c;
 - cnt[c - 'a'] ++ ;
 
当读入的数字是 'a' 时, 'a' - 'a' == 0 ,则实现了哈希的功能。
我不禁发问:
- 上述过程的逆过程如何实现呢?比如给我数值 97 ,我如何才能得到其在 ASCII 表里对应的字符 'a' ?
 - 如果在字面上转换呢?
- 比如给我数值 97 ,我如何才能得到字符串 "97" ?
 - 比如给我字符串 "97" ,我如何才能得到数值 97 ?
 
 
不熟悉的话,做题时容易被卡脖子。在此总结 C++ 和 Python。
C++
数字到字符(ASCII码)
- // 强制转换,根据 ASCII 码
 - int tmp = 97;
 - char ac = tmp;
 - cout << ac << endl; // 输出 a
 
数字到字符串(表面值)
- int tmp = 97;
 - string as = to_string(tmp);
 - cout << as << endl; // 输出 97
 
字符到数字(ASCII码)
- char a;
 - cin >> a;
 - int num1 = a - '0';
 - int num2 = a - 'A';
 - int num3 = a - 'a';
 
字符串到数字(表面值)
- string b;
 - cin >> b;
 - int num4 = stoi(b);
 - float num5 = stof(b);
 - double num6 = stod(b);
 - long double num7 = stold(b);
 
Python
数字到字符(ASCII码)
- # 强制转换,根据 ASCII 码
 - tmp: int = 97
 - ac: str = chr(tmp)
 - print(ac) # 输出 a
 
数字到字符串(表面值)
- tmp: int = 97
 - a_s: str = str(tmp);
 - print(a_s) # 输出 97
 
字符到数字(ASCII码)
- a: str = 'a'
 - num: int = ord(a)
 - print(num)
 
字符串到数字(表面值)
- b: str = "123"
 - c: str = "123.45"
 - num2: int = int(b)
 - num3: float = float(c)
 - print(num2) # 123
 - print(num3) # 123.45
 
文章名称:数字、字符、字符串?|C++与Python中的常用转换函数
文章位置:http://jxruijie.cn/article/djgisjs.html
