将char 转换成 int
来源:互联网 发布:炒外汇交易软件 编辑:程序博客网 时间:2024/05/01 21:56
网络上现在能搜到的其他答案都是针对于类似
char a = '2';
int b = a-'0';
//value of b is 2
这样的问题。
那么如果问题是
char a = -2;
int b = a;
//value of b is ?
这样的问题呢?
一般平时写代码的同学都会确定b的值是-2,但实际上b的值和编译器有关,如果直接当做-2用,很有可能让你的程序出现莫名其妙的错误。
因为在一些编译器下会进行符号位扩展,直接保留符号,将a看作signed char, b的值会是-2,
但是在一些编译器下,直接屏蔽了符号位扩展,将a先转换成unsigned char,然后再转换成int,得到的b值为254。
这时候如果我们还想拿到值为-2的int型变量,而且要保证在不同的编译环境下都可以得到值相同的变量,要怎么办呢?
一个很简单的解决方案就是在类型装换后手动加入判断
char a = -2;
...
int b = a;
if(b > 127)
b -= 256;
经过这样处理,0~127 的范围内,char 和 int 是通用的,-1~-128 在转换成int时如果被去掉了符号位扩展,可以通过减去256来还原成有符号数。
0 0
- 将char 转换成 int
- stm32 将int转换成char[]
- c++中如何将int转换成string,而不是char[]
- 将char转换为unsigned int时
- 将char字符转换成int整型,字符串与整型之间的相互转换
- java如何将char类型的数字转换成int型的数字
- 将4位长度的char转换为int类型
- 将int、char型字符转换为String
- 将string转换成char* (char[])
- 将CString 转换成char*
- 将string转换成char*
- 将string转换成char*
- 将string转换成char*
- 将string转换成char*
- 将string转换成char*
- 将string转换成char*
- 将string转换成char*
- 将string转换成char*
- Testing Method - 读书笔记 ( 二 )
- CUDA编程
- 【hdoj 1002】大数加法
- Discuz x2.5 论坛性能优化速度优化的方法 - 让你论坛秒开
- 解题报告 之 POJ2175 Evacuation Plan
- 将char 转换成 int
- [授权发表]为什么计算机的学生要学习 Linux 开源技术
- 几种输入的方法
- 调整数组顺序使奇数位于偶数前面
- Java Web入门之网络聊天室
- eclipse 4.32 安装 gradle
- OpenGL ES2.0编程三步曲
- English Contest -- The Programmer's Dream
- 大型网站系统架构演化之路