将char转换成int_c语言中int转char

将char转换成int_c语言中int转char网络上现在能搜到的其他答案都是针对于类似chara=’2′;intb=a-‘0’;//valueofbis2这样的问题。那么如果问题是chara=-2;intb=a;//valueofbis?这样的问题呢?在一些编译器下会进行符号位扩展,直接保留符号,将a看作signedchar,b的值会是-2,

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

网络上现在能搜到的其他答案都是针对于类似

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来还原成有符号数。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/188983.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 软件测试面试题及答案2020_软件测试面试题目100及最佳答案

    软件测试面试题及答案2020_软件测试面试题目100及最佳答案1.性能测试关注的指标是什么?从外部看,性能测试主要关注如下三个指标:吞吐量:每秒钟系统能够处理的请求数、任务数响应时间:服务员处理一个请求或一个任务的耗时错误率:一次请求中结果出错的请求所占比例从服务器的角度看,性能测试主要关注CPU、内存、服务器负载、网络、磁盘IO等。2.性能测试是怎么做的?/如果你要进行性能测试,你是如何展开操作的?1.确定关键业务,关键路径;2.确定测试的关键数据。比如并发量,响应时间,循环次数等;3.准备测试环境,完成脚本录制或脚本开发;4.执行测试,观察或监控输出参数,比如吞

    2022年9月1日
    2
  • C++条件运算符_位运算符

    C++条件运算符_位运算符C++条件运算符(?:)的通用格式如下:表达式1?表达式2:表达式3说明:如果表达式1为true,则整个表达式的值为表达式2的值(即,冒号左边的值);如果表达式1为false,则整个表达式的值为表达式3的值(即,冒号右边的值);C++中,条件运算符(?:)是唯一需要3个操作数的运算符。下面举个简单的例子进行说明例如:(1) inta=1; int…

    2022年10月2日
    2
  • 【Java面试】第二章:P5级面试

    HashMap底层原理,扩容机制,jdk8以后会使用红黑树优化?红黑树和二叉平衡树的区别,红黑树和B树,B+树的区别,Mysql二大引擎索引底层实现,HashMap在多线程环境中为何出错?ConcurrentHashMap底层实现,CAS,原子引用,ABA问题,volatile,如何解决HashMap出现的OOM问题?(WeakHashMap)HashMap是Map的一个实现类,它是以键值对存储数据的,Key-Value都是Map.Entry中的属性。当我们向HashMap中存放一个元素(k1,v1)

    2022年4月17日
    50
  • python2021激活码【2021.10最新】

    (python2021激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html1STL5S9V8F-eyJsa…

    2022年3月27日
    120
  • 数字图像处理标准图像Lena的故事「建议收藏」

    数字图像处理标准图像Lena的故事「建议收藏」熟悉图像处理或者压缩的工程师、研究人员和学生经常在他们的实验或者项目任务里使用“Lenna”或者“Lena”的图像。Lenna图像已经成为被广泛使用的测试图像。今天,Lenna图像的使用被认为是数字图像历史上最重要的事件之一。然而,很少有人看过原始的图像并知道完整的关于Lenna的故事。这里3sBeta将综合收集的材料对此做一个详细的梳理。。。1.Lena图像的来源在数

    2022年6月19日
    31
  • StringBuffer源码分析之 append 方法[通俗易懂]

    欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列博客。StringBuffer这个类是我们日常开发中经常会使用的一个字符串操作类,该类提供了非常多的关于字符串操作相关的类,尤其是append方法更为常用。1目标本次源码分析的目标是深入了解StringBuffer类中append方法的实现机制。2分析方法首先编写测试代码,…

    2022年4月11日
    73

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号