是否可以认为操作系统知道每块内存是否signed或者unsigned

解决方案 »

  1.   

    不可以。操作系统只管内存的整体分配,对于每个字节的作用、用法都是应用程序爱怎么着就怎么着的。举例来说,操作系统分1M内存给应用程序A做栈,应用程序A很可能拿前面4个字节存一个无符号数,接下去的两个字节存一个有符号数,这些操作系统都是不知道的,当然根本不必知道。而且在应用程序运行过程中,或许某个时候又需要把前面那4个字节作为一个有符号数来解释,甚至作为4个byte来解释,这些操作系统更是没必要介入的。
      

  2.   

    偶好像说乱了。:P
    其实signed和unsigned数在内存中都是一个一个的二进制位。其区别紧紧是运算时,是否要把最高位看成是符号位。从而也引起了同样一个二进制位序列在取值范围和最终解释上的不同。只要知道这些,然后就大胆的用就行了,编译器会根据不同的类型最终编译成不同的汇编代码,机器代码。
      

  3.   

    操作系统只是负责加载代码,让cpu运行,并对其进行信息数据反馈,不需要知道这些东西。
    相反,编译器和cpu需要知道有无符号!