编程时要显式使用IBM PC上的内存地址时,需要编译器以long类型存储一个小数字的原因如下:
在IBM PC中,内存地址通常使用16位寄存器来存储。这意味着内存地址的范围只能是0到65535(2的16次方减1)。如果您想使用一个小数字表示内存地址,例如4096或10000,您必须将其转换为16位无符号整数。但是,如果您计算出的16位整数大于32767(2的15次方减1),则它将被解释为负数。
为了确保可以正确地使用16位内存地址,您需要使用32位整型变量(即long类型),该变量可以表示超过32,000个不同的值。通过使用long类型,您可以将程序中的小数字视为16位无符号整数,并且可以避免由于内存地址的溢出而导致的错误。
此外,使用长整型也可以提高程序的可读性和可维护性。虽然long数据类型使用更多的内存,但这是值得付出的代价,可以提高代码的可靠性和健壮性。