![]() |
1
7
例如,这里有许多相关问题 this 一
你的问题不太对:
例如:
您可以看到两个值是如何相同的,都设置了最高位,但它们的类型不同。
编译器使用
type system
知道如何解释值,程序员的任务是为值分配有意义的类型。在上面的示例中,我告诉编译器
第二个
对于示例中的printf
更多printf格式说明符是
here
例如
|
![]() |
2
6
在
编译器将给定值转换为
|
![]() |
3
3
这种说法令人困惑和误导。
电脑不知道。
你
通过键入单词告诉它您是想将该内存解释为有符号数字还是无符号数字
离开
发生了什么?128大于最大可能的有符号字符(同样,假设8位字符为二进制补码)。所以价值 绕到尽可能小的值 ; 则变为-128。
发生了什么?129比最大可能的带符号字符大 二 。所以它围绕着 第二最小可能值 , -127.
这是 三 大于可能的最大值,因此它会绕到 第三个最小可能值 , -126. …跳过几个。。。
这比最大的可能值大128,因此它将返回到第128个最小的可能值,即-1。 知道了? 好了,现在我们明白了:
现在,当我们说
? 我们有一个带符号的整数。
的内存内容
|
![]() |
Community wiki · 如何确定变量是有符号还是无符号? 2 年前 |
![]() |
OregonTrail · 安全地将int转换为C中的字符串 10 年前 |
![]() |
Lautaro · SSE比较压缩的无符号字节 12 年前 |
![]() |
Zapnologica · Java和无符号字节[重复] 12 年前 |