无符号长于0xFFFFFFFF

时间:2019-07-15 17:31:22

标签: c++ integer overflow sizeof

如果无符号长最大为4294967295,测试程序如何生成4294967297?

return callback(null, true)

2 个答案:

答案 0 :(得分:2)

原因是看来您的编译器定义function hideOrShow(executionContext){ var a = executionContext.getFormContext().getAttribute("log_showhide").getValue(); if (a == 0) { Xrm.Page.ui.tabs.get("SUMMARY_TAB").sections.get("sampleSection").setVisible(true); } else { Xrm.Page.ui.tabs.get("SUMMARY_TAB").sections.get("sampleSection").setVisible(false); } }的方式与定义unsigned long int的方式相同。:)

这是一个演示程序

unsigned long long int

其输出为

#include <iostream>
#include <limits>

int main()
{
    std::cout << "sizeof( unsigned long ) = " << sizeof( unsigned long ) << '\n';
    std::cout << "The maximum values is " << std::numeric_limits<unsigned long>::max() << '\n';
}

答案 1 :(得分:1)

  

如果无符号长最大为4294967295,测试程序如何生成4294967297?

鉴于前提,就不可能。

但是,不能保证unsigned long的最大值恰好是4'294'967'295,因此您的前提可能无效。该最大值对应于32位数字可以表示的最大值。 32是({unsignedlong最小所需宽度,但可能会更宽。

特别是,对于某些64位系统,unsigned long通常为64位,最大值为18'446'744'073'709'551'615。