|
|
1
2
您似乎正在努力解决这个问题的地方是,在将位解释为有符号或无符号或精确的宽度类型时,您确切地理解了要处理的位。
答复: 你不知道--这些东西永远不会变。。。。
当您申报时
理解符号扩展的关键是,它仅适用于在2的补码系统下解释负值时,当施法或分配给 较大尺寸 类型否则,您不会扩展任何内容,您只是 口译 将位作为不同的类型。
我们将用一个简短的例子来说明你的问题。在这里
使用/输出示例
仔细检查一下,看看所有的答案,如果你还有其他问题,请告诉我们。 |
|
|
2
1
您的代码对printf中的参数类型使用了错误的格式说明符,从而导致未定义的行为。 以下是一些正确的代码:
打印F a的代码
|
|
|
3
0
FFFFFFF D是两个正确的补码值,它只是用十六进制打印出来的
使用
你应该看到65533的值 |
|
|
4
0
在C语言中,将有符号值转换为更宽的类型会自动扩展其符号。 要获取补码值,需要将值强制转换为适当的无符号类型:
我得到的结果是:
|
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 8 月前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 9 月前 |
|
|
Bobby · 复合字面值总是左值吗? 9 月前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 9 月前 |