C++进阶③:int类型和unsigned int类型、string/char比较和当做int、to_string、stoi和atoi、string的三种添加字符(串)方法

1 int类型和 unsigned int 类型

①int表示32位整数,最高位为符号位,正数为0,负数为1。
最大正整数INT_MAX = 2147483647 = 2^31-1,是除最高位为0外,其余位均为1的二进制数:0111…1111。
最大负整数INT_MIN = -2147483648 = 2^31。
由于二进制补码等原因
INT_MAX + 1 = INT_MIN (会溢出,不符合计算逻辑)

②unsigned int的最高位可以使用,其最大值是1111…1111,相当于在第32位增加了个1,大小为2^ 31,其值为2^31+INT_MAX = 2 ^32 -1;
UNSIGNED_MAX = 4294967295 UNSIGNED_MIN = 0

③int a = 1。
a最多左移30位,for(int i = 0; i < 30; i++){a <<= 1;},移动后a为0100…000,其值为2^30。
a左移31次,a= -2147483648
a左移32次,a=0

④unsigned int b = 1。
b最多左移31位,b = 2^31。
b左移32位,b = 0。

2 字符串-string类型的比较

string内部有 > 、< 、 >= 、 <= 等比较方式,比较方式依据ASCII码,比较字符串首位的ASCII码大小!,如果首位相同则比较次位
常见ASCII码的大小规则:0-9 < A-Z < a-z。
NULL为0,“A”为65,“a”为97,“0”为 48。

例如:
s1 = "9999", s2 = "a"  s1 < s2;
s1 = "123", s2 = "5", s1 < s2;
s1 = "ZARD", s2 = "c", s1 < s2;
s1 = "9a", s2 = "999", s1 > s2;

3 string、char类型当int类型使用

string s = "happy";
s[0] s[2] 都是char类型
vector<int> v(128, 0); ASCII表一共有128个字符,用此大小足够
v[s[1]] 相当于 v['a'] 相当于 v[97]

3 to_string()函数

前置条件:#include< string>
功能:将数字常量转换为字符串
函数原型:
string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string (long double val);

4 stoi()和atoi()函数

把字符串中的数值转换为int类型
stoi(const string& )
是C++函数,头文件< string >
stoi()会做范围检查,默认范围是在int的范围内的,如果超出范围的话则会runtime error!

atoi(const char*)
是C函数,头文件< cstring>
要使用atoi,注意把string类型转换为char*类型,用c_str()函数。
atoi()不会做范围检查,如果超出范围的话,超出上界,则输出上界,超出下界,则输出下界;

还有stol、stoul等一系列转换函数。

5 string的“+=”、“append”和“push_back”

三种添加方式详解
push_back和数组类似,只能加单个字符。
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值