unsigned char answer[98]={0};发现结果有溢出 怎么修改 定义unsigned long行吗
发布网友
发布时间:2022-08-17 06:30
我来回答
共2个回答
热心网友
时间:2023-10-10 15:03
不知道你所说的“发现结果有溢出”是什么现象?
如果你的程序目的是处理字符,那么你的“发现结果有溢出”估计有两种可能:数组越界和字符运算问题。是前者就需要把数组加大,把98改成200甚至更大;是后者则要注意字符跟数值的关系,字符在运算的时候使用的是它对应的ascii码,比如'1'+'2'结果会是49+50=99,如果作为字符会是'c',而不会是'3'。
如果你的程序目的是为了处理一组比较小的非负数,在计算结果上发现溢出,可以考虑把unsigned char改成unsigned short或者unsigned int甚至unsigned long。
补充:
结果有大于255的就改成unsigned short或者unsigned int吧。但是你要知道,这样一改之后这个数组里保存的数据就不再是自动当成字符对待了。
热心网友
时间:2023-10-10 15:03
你定义了98个无符号字节数组,有溢出是不是你取到98以后的字节上了(可以定义>98byte),
还是说你每个字节存的是整型?