您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
运算符优先级怎么记忆比较好?
太大,括号,会有运算符优先级怎么记忆比较好?
发布时间:2020-12-06加入收藏来源:互联网点击:
运算符优先级怎么记忆比较好?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
好记得很!
你能问出这个问题,说明你不擅长死记硬背,那就靠理解吧!
1 不管什么语言,有括号一定先算括号的,这点从你小学学了以后就没变过,你看看那些复杂点的数学函数/库函数,像sqrt()这类的,是不是都带括号?你自己写个函数,在另外的地方用了,比如y=3+zijihanshu(7) 明显就得先算括号的啊对吧。
2 考虑了括号,然后是取反啊,比如是变成非、5变成-5啊、a变成-a啊这类的,这就是个符号的问题,5+(-5)不就是5-5么,小学数学啊,那个数正反都没搞明白是没法继续运算的,你手工解a+(-b)你也一定会直接写成a-b啊。以上这两个都是符合人类正常思维的,有点常识感一般是不会搞错的。
3 你认为难记的应该从这里开始。其实也不难,你就记着,越容易导致溢出/数太大太长程序不知道该怎么办好的,越会优先算。比如,像求多少次方,你觉得a乘b容易数太大呢还是a的b次方容易数太大呢,你不钻牛角尖的话显然就是后者啦,所以多少次方的那个先算!然后你觉得a乘b和a加b哪个先最大,当然是a乘b啦,所以优先级接着到乘除法以及取模(取模也得人家给你除一遍吧,跟做除法是一个道理),而且除法还会有不能除以0这种事,容易给程序带来“不知道怎么办”的情况啊。理所当然下来是加减啦,加加减减虽然一般没什么事对吧,但是加得大了也会有溢出(结果太大嘛)对吧,看下移位,你只要规定不溢出就肯定没有溢出啦,移出去就算了的那种嘛,所以移位就排在加减之后了,但是呢移位其实还可以规定移出去算溢出对吧,移位的这点不够纯粹,那就看看位运算,两个数搞位运算不会有溢出的嘛,怎么算都不会!所以位运算排移位的后面。再然后是比较啦,比较相比位运算结果更少啊,数更不可能大或者长啊,你想想1000100110 and 1110011010 得到的结果长 还是 1000100110 > 1110011010得到的结果长?后者得到的不是0就是1吧。
这样你就好理解啦!其实这是根据机器和人的思维结合划定的!对于人来说,如果一个运算要算两小时,我当然希望溢出发生在前两分钟吧,千万不要算了一小时五十分钟了突然告诉我溢出了啊;对于机器来说,整个运算里面的寄存器啊内存啊够不够用,当然希望前面就能大概判断了,别整到后面数太大才告诉我不够用啊。
所以得到的结论就是越容易把数变长变大变得不可控的,越先算。
上一篇:乔丹之后第一人是谁比较合理?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |