gpt4 book ai didi

c++ - 在 C++ 中,如何将 32 位数字传递给 'int' 变量,而不会将 0x7FFFFFFF 以上的任何内容视为负数?

转载 作者:行者123 更新时间:2023-12-03 07:07:05 26 4
gpt4 key购买 nike

我需要一个 int变量上升到 4294967295 (0xFFFFFFFF),不使用 unsignedlong ,所以它实际上可以被其他函数使用。这甚至可能吗?

最佳答案

你不能,除非你找到一个带有 int 的平台。大于 32 位(在撰写本文时它们很少见)。
如果您需要使用 signed输入,然后 std::int64_t是一个不错的选择。或 long long也保证足够大。

如果您绝对受函数接口(interface)的限制,那么您可以将您的数字分成两部分 - 并采用需要调用该函数两次才能从中获得任何意义的约定。但这可能会使您的程序非常脆弱。

另一种选择:如果您的函数允许使用 int通过引用,您可以拥有两个 int 的数组s 在调用站点,并将第一个传递给您的函数。然后,您可以在函数体内使用指针算术到达另一个!同样,这会使您的代码变脆,但它会起作用。

关于c++ - 在 C++ 中,如何将 32 位数字传递给 'int' 变量,而不会将 0x7FFFFFFF 以上的任何内容视为负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64684031/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com