作业帮 > 综合 > 作业

一个C++位运算,有点点不懂.a=3 b=5 c=15 d=2 那么 a*b/c%d 等于多少?

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/10 15:50:26
一个C++位运算,有点点不懂.a=3 b=5 c=15 d=2 那么 a*b/c%d 等于多少?
一个C++位运算,有点点不懂.a=3 b=5 c=15 d=2 那么 a*b/c%d 等于多少?
1、您所提到的这个运算表达式中是不存在位运算的,位运行符是用来表示
2、对于a*b/c%d这个表达式,注意到*/%(乘号、除号、求余符号)三个符号都是同一优先级的运算符,所以您不需要担心运算先后的问题,只需要从左到右将数字代入字母之后依次运算
3、有一个需要注意的地方是对于整数运算,除号(/)运算符实际上是进行整除,而不是算术中实际运用的除(在这个地方没有问题)
4、结果是1,具体可以参照msp430149和rockider001的回答
再问: 谢谢咯,就还有一个问题 也问下你可以吗? 如果表达式中含char型,全部转换成int型。 表达式 'a'+'3'+15 , 为什么 'a' '3' 转型之后的值是 97 和51 啊?
再答: 不客气! 你的这个问题涉及到一些底层。 在C语言中,实际上是没有严格的类型的,所有的一切都是直接表示为在内存中表示的值。字符型(char)也是一样,字符型在内存中实际是表示为ASCII码,您还可以通过以下一个简单的示例来了 int asciiValue; char someChar; /* 设置someChar的值 */ asciiValue = (int)someChar; /* 将someChar的ASCII码储存到asciiValue /* 自定义输出asciiValue */ 所以当计算机看到'a'+'3'时,它会认为这是一个简单的整数运算。 ('a'的ascii码是97,'3'的ascii码是51) 您还可以参考一下ASCII码的字符集: http://msdn.microsoft.com/zh-cn/library/60ecse8t(v=VS.80).aspx