Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

勘误 有关数据类型表示范围的问题 #2533

Open
TlgYuri opened this issue Nov 15, 2024 · 4 comments
Open

勘误 有关数据类型表示范围的问题 #2533

TlgYuri opened this issue Nov 15, 2024 · 4 comments
Labels
discuss discuss a problem

Comments

@TlgYuri
Copy link

TlgYuri commented Nov 15, 2024

image

image

@fox-half-tian
Copy link
Contributor

image

image

诶你的问题是啥,我咋没看懂哪里存在问题

@TlgYuri
Copy link
Author

TlgYuri commented Nov 16, 2024

image
image

诶你的问题是啥,我咋没看懂哪里存在问题

偷懒没写字,只贴了两张图
图1是这边对Java整数类型表示范围的解释,这个解释是有问题的
图2是从别处扣来的解释截图

@fox-half-tian
Copy link
Contributor

image
image

诶你的问题是啥,我咋没看懂哪里存在问题

偷懒没写字,只贴了两张图 图1是这边对Java整数类型表示范围的解释,这个解释是有问题的 图2是从别处扣来的解释截图

图1的解释没有问题。有几点值得说明:

  1. 最高位是符号位。
  2. 图2提到“符号位也会参与取反”,这是一种计算方式。但是更通用的计算方式应该是:从原码到补码,符号位不变,其它位取反,再+1。
  3. 在补码的计算中,符号位也会参与运算。
  4. 不必扣这么小的字眼,我们通常也是说在有符号数中最高位表示的就是符号位,当然,Java全部都是有符号数。

@TlgYuri
Copy link
Author

TlgYuri commented Nov 18, 2024

image
image

诶你的问题是啥,我咋没看懂哪里存在问题

偷懒没写字,只贴了两张图 图1是这边对Java整数类型表示范围的解释,这个解释是有问题的 图2是从别处扣来的解释截图

图1的解释没有问题。有几点值得说明:

  1. 最高位是符号位。
  2. 图2提到“符号位也会参与取反”,这是一种计算方式。但是更通用的计算方式应该是:从原码到补码,符号位不变,其它位取反,再+1。
  3. 在补码的计算中,符号位也会参与运算。
  4. 不必扣这么小的字眼,我们通常也是说在有符号数中最高位表示的就是符号位,当然,Java全部都是有符号数。

不是抠字眼啊,这个问题核心在于正负都有一个0,负数的0拿来表示最小负数所以负数多一位,原本的答案只能说没错,但是根本没把问题说清楚,这里严谨一点说清楚不是更好吗

@Snailclimb Snailclimb added the discuss discuss a problem label Dec 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss discuss a problem
Projects
None yet
Development

No branches or pull requests

3 participants