标题: C语言数据类型问题unsigned char short能不能直接做运算或比较大小? [打印本页]

作者: hxdby    时间: 2023-5-5 18:54
标题: C语言数据类型问题unsigned char short能不能直接做运算或比较大小?
大家好,

请问unsigned short类型的数据和unsigned char类型的数据能不能直接做运算或比较大小?

比如:
unsigned short  data1=3;
unsigned char  data2=100;
unsigned short   result=0;

if(data1==data2)
{
    result=1;
}
else
{
result=0;
}

或者,
result=data1+data2;

由于data1和data2数据类型不同,不知道能不能直接做以上的逻辑运算和数学运算?还是必须要强制把类型转换成一样的?
谢谢

作者: Hephaestus    时间: 2023-5-5 20:30
当然能运算了,c语言就是这样,非常灵活,但是用户水平不高就掉坑里面了。像FORTRAN这样严格限制运算类型的,可以帮助用户检查错误,但是很死板。
作者: 13205495918    时间: 2023-5-6 09:01
编辑器应该会自动升级无符号字符型本质上也是一种小整形变量
作者: hzsweet    时间: 2023-5-6 10:43
可以的,无符号字符型的运算和比较
作者: hxdby    时间: 2023-5-8 11:19
Hephaestus 发表于 2023-5-5 20:30
当然能运算了,c语言就是这样,非常灵活,但是用户水平不高就掉坑里面了。像FORTRAN这样严格限制运算类型的 ...

了解了,感谢回复
作者: li64331218    时间: 2023-5-8 11:23
有学习到了,有时候越是简单的问题还越迷茫
作者: Hephaestus    时间: 2023-5-8 12:40
li64331218 发表于 2023-5-8 11:23
有学习到了,有时候越是简单的问题还越迷茫

那你随便找个编译器自己try try不就什么都清楚了吗?
作者: wufa1986    时间: 2023-5-9 16:47
可以比较,编译器会强制转换
作者: shenxinxin0114    时间: 2023-5-9 19:24
可以的,编译器会自动把他们转换成同一种数据类型




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