c语言中5%2意思是5除以2的余数,5除以2等于2余1。
c语言中百分号就是模运算,即求余数。
表达式a%b就是计算a除以b得出的余数。
例如:4%3的结果是1。
你输入的数字大小超过了127
这是个位溢出问题或者说超过了该类型能表示的范围,结果自然不是我们想要的
输入在-128~127(char能表示的范围)之间是正常的,超过127的输入转换成二进制位将大于七位,(你的接收变量为char a)第八个二进制位不为0将代表符号位的负号兼数字,目测你输入的是204,或者更大的。。。
不管你输入多少,结果a只会在-128~127之间
内容为数字的char,包含
0,1,2,3,4,5,6,7,8,9
共计10个字符。
这十个字符在存为字符型时,其存储值为对应的ascii码,而这些ascii码是连续的,且按照其本身数字的大小来排列。
这样就可以将字符值,减去起始ascii码值实现转为对应值的效果。
设
int
a;
//转换的目标变量。
char
c
=
'7';
//要转换的字符。
c
=
a
-
'0';
这样得到的就是对应的值了,即c
=
7。
如果在文件中需要多次该操作,则可以定义一个带参宏,如下:
#define
chartonumber(x)
(x-'0')
这样只需要调用
c
=
chartonumber(a);
即可实现效果。
本站内容仅供参考,不作为诊断及医疗依据,如有医疗需求,请务必前往正规医院就诊
祝由网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。
Copyright © 2022-2023 祝由师网 版权所有