将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)
上一篇 2026年4月14日 下午11:46
下一篇 2026年4月14日 下午11:52


相关推荐

  • linux批量文件重命名命令_shell重命名文件指令

    linux批量文件重命名命令_shell重命名文件指令SYNOPSISrenamefromtofile…from表示需要替换或者处理的字符,比如文件的扩展名,文件名.to表示对from处理之后的结果。file表示目标文件。[[emailprotected]tmp]#lshello_10_2016-03-17.loghello_4_2016-03-17.loghello_8_2016-03-17.loghello_1_20…

    2025年9月4日
    7
  • 深入浅出LangChain AI Agent智能体开发教程(八)—LangChain接入MCP实现流程

    深入浅出LangChain AI Agent智能体开发教程(八)—LangChain接入MCP实现流程

    2026年3月16日
    2
  • Pytest(13)命令行参数–tb的使用「建议收藏」

    Pytest(13)命令行参数–tb的使用「建议收藏」前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月29日
    7
  • 最全SSH命令 – 11种用法

    最全SSH命令 – 11种用法SSH 命令 1 使用 ssh 连接远程主机 2 ssh 连接到其他端口 3 使用 ssh 在远程主机执行一条命令并显示到本地 然后继续本地工作 4 在远程主机运行一个图形界面的程序 5 如何配置 SSH6 构建 ssh 密钥对 7 查看是否已经添加了对应主机的密钥 8 删除主机密钥 9 绑定源地址 10 对所有数据请求压缩 11 打开调试模式附 etc ssh sshd config 配置文件详细说明 1 使用 ssh 连接远程主机最简单的用法只需要指定用户名和主机名参数即可 主机名可以是 IP 地址或者域名 sshuse

    2026年3月26日
    2
  • Generic Host Process for Win32 Services 解决之道[通俗易懂]

    Generic Host Process for Win32 Services 解决之道[通俗易懂]开机有时候会出现:GenericHostProcessforWin32Services遇到了一个问题,需要关闭。出现上面这个错误一般有三种情况。1.就是病毒。开机后会提示GenericHostProcessforWin32Services遇到问题需要关闭”“RemoteRrocedureCall(RPC)服务意外终止,然后就自动重起电脑。一般该病毒会在

    2022年10月12日
    4
  • UOS操作系统如何自定义壁纸进行自动更换

    UOS操作系统如何自定义壁纸进行自动更换UOS 壁纸存放在 usr share wallpapers deepin1 前提是进入了开发者模式有 sudo 权限 ctrl alt t 打开终端使用 cp 命令将壁纸拷贝到 usr share wallpapers deepin 例如 cp 微信图片 800 png usr share wallpapers deepin 2 在桌面右击选择壁纸与屏保 3 然后就可以设置自己设置的壁纸进行自动更换了

    2026年3月18日
    3

发表回复

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

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