标题: C51可以支持十进制的负数运算吗? [打印本页]

作者: lzuoxin    时间: 2024-7-11 17:55
标题: C51可以支持十进制的负数运算吗?
比如char a=0,  b=1,  c;c=a-b;
c可以得到正常值-1吗谢谢





作者: woshinh    时间: 2024-7-11 20:00
可以运算,但你要注意char型是否为无符号类型,如果是你应该会得到0xFF的值,也就是254,你声明的时候强制有符号就可以得到-1了,这个根据编译器类型配置有关
作者: 188610329    时间: 2024-7-11 21:14
woshinh 发表于 2024-7-11 20:00
可以运算,但你要注意char型是否为无符号类型,如果是你应该会得到0xFF的值,也就是254,你声明的时候强制有符 ...

首先, 0xff 是 255, 而不是 254
其次,无论是 char 还是 uchar 只要是 8位的, 0-1 的 结果都是 0xff, 无非是在 char 的情况下, 0xff 小于 0x00 而uchar 的情况下 0xff  大于 0x00
最后,楼主问的是 十进制的负数运算,虽然不知道你回答的是否符合楼主的提问,至少,我是没理解楼主想问什么……
作者: AGOU    时间: 2024-7-11 23:43
能的,,
作者: xiaobendan001    时间: 2024-7-12 07:31
188610329 发表于 2024-7-11 21:14
首先, 0xff 是 255, 而不是 254
其次,无论是 char 还是 uchar 只要是 8位的, 0-1 的 结果都是 0xff,  ...

一般人都理解不了的,哈哈哈哈
他可能是问问C51是否支持有符号数的运算吧。
作者: devcang    时间: 2024-7-12 09:53
char可以的
作者: fj51hei    时间: 2024-7-12 10:21
188610329 发表于 2024-7-11 21:14
首先, 0xff 是 255, 而不是 254
其次,无论是 char 还是 uchar 只要是 8位的, 0-1 的 结果都是 0xff,  ...

首先, 0xff 是 255, 而不是 254  这个怎么理解?
作者: coody_sz    时间: 2024-7-12 17:43
char型是有符号整数,可以计算负数的。
作者: lzuoxin    时间: 2024-7-13 09:27
谢谢大家的解答,已经编程实践验证过了,可以直接进行负数的加减运算,不用考虑负数的补码、反码表示问题。
作者: lzuoxin    时间: 2024-7-13 09:27
谢谢大家的解答,已经编程实践验证过了,可以直接进行负数的加减运算,不用考虑负数的补码、反码表示问题。
作者: mt6895    时间: 2024-7-13 16:53
可以,只要你的变量类型是 char,如果是无符号整数类型(如 unsigned char),那么需要手动处理溢出或负数转换
作者: lzuoxin    时间: 2024-7-14 09:05
mt6895 发表于 2024-7-13 16:53
可以,只要你的变量类型是 char,如果是无符号整数类型(如 unsigned char),那么需要手动处理溢出或负数转 ...

谢谢朋友,是这样的
作者: 2300606886    时间: 2024-7-14 11:21
直接可以
作者: rayin    时间: 2024-7-15 07:28
浮点数的负数也可以呀. 电阻触摸屏的校准会用到负数浮点运算, C51没问题.
作者: tomnoyaoni    时间: 2024-7-15 08:46
可以的




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1