小编Joo*_* Oh的帖子

LONG_MAX -1 是 64 位机器吗?

我发现 LONG_MAX (9223372036854775807) 实际上保存在 64 位机器的 long 类型变量上,如下所示。

Hex: 0xffff ffff ffff ffff ffff ffff ffff ffff

Bin: 11111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
Run Code Online (Sandbox Code Playgroud)

据我所知,最高有效位用作有符号位。

Windows 计算器中的 9223372036854775807 更改如下。

Hex: 0x7fff ffff ffff ffff ffff ffff ffff ffff
Bin: 01111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
Run Code Online (Sandbox Code Playgroud)

所以,恕我直言,LONG_MAX 应该保存如下

Hex: 0x7fff ffff ffff ffff ffff ffff ffff ffff
Bin: 01111111 11111111 11111111 11111111 11111111 11111111 11111111 11111111
Run Code Online (Sandbox Code Playgroud)

long 变量是否被视为无符号值?

我注意到有人问我是如何发现这种情况的。

我在下面的代码中发现了这种情况。

#include <stdio.h>
#include <limits.h>

int main(int argc, …
Run Code Online (Sandbox Code Playgroud)

c types numbers

2
推荐指数
1
解决办法
100
查看次数

标签 统计

c ×1

numbers ×1

types ×1