9.在32位计算机中运行一个C语言程序,在该程序中出现了以下变量的初值,请写出它们对应的机器数(用十六进制表示)。 (1) int x=-32768 (2) short y=522 (4) char c='@'
时间: 2024-11-09 15:30:57 浏览: 46
全国2008年10月高等教育自学考试 高级语言程序设计(一)试 课程代码00342.doc
在32位计算机中,我们通常有32位的整型(int)、16位的短整型(short)以及8位的字符(char)。以下是每个变量对应的不同类型的机器数(以十六进制表示):
1. 对于int类型,负数需要通过补码表示。-32768是一个负数,所以它的二进制形式会是补码。32位的二进制补码形式为:
```int x = 0x8000_0000 | (32767 + 1)``
即 `0x8000_0000`(最高位为1代表负数)加上 `0x7FFF_FFFF`(32767的二进制加1),所以最终是 `0xFF80_0000`。
2. 对于short类型,同样使用补码表示。522是个正数,直接转换为16位二进制即可:
```short y = 0x0000_BD2A```
其中 `BD2A` 是十进制522的十六进制表示。
3. 对于char类型,它是8位的,字符 '('@ 的ASCII值在内存中存储为一个字节,其十六进制形式是:
```char c = 0x40```
因为 '@' 的 ASCII 码是 64(十进制),将其转换成十六进制就是 `40`。
阅读全文