gpt4 book ai didi

在 ubuntu 中将数字文字从 64 位编译器转换为 32 位编译器

转载 作者:行者123 更新时间:2023-11-30 19:23:22 25 4
gpt4 key购买 nike

据我所知,在 64 位编译器中,(这取决于编译器)unsigned long long 的最大大小可能类似于 18446744073709551615ull ,所以我尝试搜索并替换文字到 -1ul 当我希望我的 .c 程序由 32 位编译器编译并且它确实工作时,因为它等于 2^64 并且所有 64 位都是 1,所以 32 位的表示是 - 1ul(我认为基于补码)

但是我想知道第9223372036854775808ull,因为它是 2^(64-1) ,32位文字是什么? -2ul还是1ul???

谁能给我解释一下这个转换过程吗?不知何故感到困惑......

阿米尔

最佳答案

9223372036854775808ull 的十六进制形式为 0x8000000000000000,当您将其放入 的变量中时,将变为 0x00000000(最后八位十六进制数字) int32 类型。

看来您需要学习有关以二进制格式存储数据的基础知识。刚刚阅读相关wiki pages和一些articles并练习手动在不同表示形式之间转换数字(在纸上)。

关于在 ubuntu 中将数字文字从 64 位编译器转换为 32 位编译器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12498250/

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