zoukankan      html  css  js  c++  java
  • 小技巧—强制类型转换

    小技巧—强制类型转换

    谨以此篇,纪念CSP-S2020 T2T3挂了60pts的自己。

    爆数据类型这件事,凡是学过OI的应该都有所耳闻。

    那么什么时候会爆呢?总结一下。

    首先,输出输入如果超过这个数据类型的最大容纳量,那就爆了。这是最显然的。可以通过给定的数据范围判断。

    然后是隐晦一点的,中间过程爆。具体一些,就是中间涉及到的运算,比如乘法取模,你以为最后都模下去了,但还是爆了。

    所以这里涉及到强制类型转换。

    简单地说,即便你考虑到中间过程可能爆,你写的也的确是longlong或ulonglong,但是如果没有强制类型转换,你还是会爆。为什么呢?

    比如(1<<64)。

    这里的1是默认int,64是默认int,所以最后的答案无论多大,系统还是会默认用int来存。

    这不就炸了?

    所以这里要加强制类型转换,1让它变成ull,就不会炸了。

    就是这样:

    (1ull<<64)

    即可。

  • 相关阅读:
    《将博客搬至CSDN》
    所谓找链表中点
    虚函数
    编辑距离
    数组移位
    DFA
    Single Number III
    XOR异或解惑
    First Bad Version
    while(!in.empty()) 和 while(in.size())
  • 原文地址:https://www.cnblogs.com/fusiwei/p/13951997.html
Copyright © 2011-2022 走看看