本网站(662p.com)打包出售,且带程序代码数据,662p.com域名,程序内核采用TP框架开发,需要联系扣扣:2360248666 /wx:lianweikj
精品域名一口价出售:1y1m.com(350元) ,6b7b.com(400元) , 5k5j.com(380元) , yayj.com(1800元), jiongzhun.com(1000元) , niuzen.com(2800元) , zennei.com(5000元)
需要联系扣扣:2360248666 /wx:lianweikj
数字、字符、字符串? | C++ 与 Python 中的常用转换函数
kenrry1992 · 215浏览 · 发布于2021-08-20 +关注

计算机底层是一堆逻辑电路,记录信息只能以数值的形式。因此对于一个字符 a ,计算机记录其为值 97 。 这个值与字符的对应关系是人们约定好的,这里使用的对应表为 ASCII Table 。


计算机底层是一堆逻辑电路,记录信息只能以数值的形式。

因此对于一个字符 a ,计算机记录其为值 97 。

这个值与字符的对应关系是人们约定好的,这里使用的对应表为 ASCII Table 。

在 ASCII Table 里, a 对应 97 , b 对应 98 ... 字符 1 对应数值 49 。

之所以写这篇笔记是因为一些算法题的要求,比如,我们需要统计 26 个小写英文字母出现频率,在算法题中,完全没必要开一个哈希表,开一个 26 长度的整数数组就行。


  1. int cnt[26]; 

当我们读入一个字符时,则进行一次强制类型转换,就实现了哈希表功能。


  1. char c; 

  2. cin >> c; 

  3. cnt[c - 'a'] ++ ; 

当读入的数字是 'a' 时, 'a' - 'a' == 0 ,则实现了哈希的功能。

我不禁发问:

  • 上述过程的逆过程如何实现呢?比如给我数值 97 ,我如何才能得到其在 ASCII 表里对应的字符 'a' ?

  • 如果在字面上转换呢?

    • 比如给我数值 97 ,我如何才能得到字符串 "97" ?

    • 比如给我字符串 "97" ,我如何才能得到数值 97 ?

不熟悉的话,做题时容易被卡脖子。在此总结 C++ 和 Python。

C++

数字到字符(ASCII码)


  1. // 强制转换,根据 ASCII 码 

  2. int tmp = 97; 

  3. char ac = tmp; 

  4. cout << ac << endl;  // 输出 a 

数字到字符串(表面值)


  1. int tmp = 97; 

  2. string as = to_string(tmp); 

  3. cout << as << endl;  // 输出 97 

字符到数字(ASCII码)


  1. char a; 

  2. cin >> a; 

  3. int num1 = a - '0'; 

  4. int num2 = a - 'A'; 

  5. int num3 = a - 'a'; 

字符串到数字(表面值)


  1. string b; 

  2. cin >> b; 

  3. int          num4 = stoi(b); 

  4. float        num5 = stof(b); 

  5. double       num6 = stod(b); 

  6. long double  num7 = stold(b); 

Python

数字到字符(ASCII码)


  1. # 强制转换,根据 ASCII 码 

  2. tmp: int = 97 

  3. ac: str = chr(tmp) 

  4. print(ac)  # 输出 a 

数字到字符串(表面值)


  1. tmp: int = 97 

  2. a_s: str = str(tmp); 

  3. print(a_s)  # 输出 97 

字符到数字(ASCII码)


  1. a: str = 'a' 

  2. num: int = ord(a) 

  3. print(num) 

字符串到数字(表面值)


  1. b: str = "123" 

  2. c: str = "123.45" 

  3. num2: int = int(b) 

  4. num3: float = float(c) 

  5. print(num2) # 123 

  6. print(num3) # 123.45 


相关推荐

PHP实现部分字符隐藏

沙雕mars · 1324浏览 · 2019-04-28 09:47:56
Java中ArrayList和LinkedList区别

kenrry1992 · 907浏览 · 2019-05-08 21:14:54
Tomcat 下载及安装配置

manongba · 967浏览 · 2019-05-13 21:03:56
JAVA变量介绍

manongba · 961浏览 · 2019-05-13 21:05:52
什么是SpringBoot

iamitnan · 1086浏览 · 2019-05-14 22:20:36
加载中

0评论

评论
分类专栏
小鸟云服务器
扫码进入手机网页