如果在C#中使用Int64的运算,在32位操作系统下,会不会使用64bit指令来执行?

解决方案 »

  1.   

    当然不会了。如果在32bit系统能以64bit指令来运行,那还分32bit和64bit干什么?
      

  2.   

    Int64是变量所能存储的数值大小,跟系统有什么关系?
    那声明一个byte类型的变量,岂不是只能在8bit的系统下运行?
      

  3.   

    32位操作系统怎么可能有“64bit指令”?你的问题和标题八十杆子也打不着啊...
      

  4.   

    .Net framework的事情,和你的系统的32位和64位,关系不大。要不要虚拟机干啥啊?
      

  5.   

    按我的理解,32bit操作系统只是说操作系统内部和API主要使用32bit数据
    如果.NET的JIT能在编译成本机代码的时候“发现”CPU可以执行64bit指令,是能够使用64bit进行操作的
      

  6.   

    这是个JIT优化的问题,据说Mono可以使用MMX、SSE指令进行优化
      

  7.   

    .NET Framework不是运行在windows上的么?
    虚拟机也一样依赖host,host os是32的,那也别想装64的虚拟系统
      

  8.   

    32位哪来64位指令?
    不过Int64运算这种是由.Net framework来保证执行结果的,在32位或者64位的机器上执行结果是相同的。
      

  9.   

    OS是32位,和指令位数有必然关系吗?一个是系统管理软件,一个是硬件指令。难道说OS还要先扫描exe文件的二进制码,由OS来进行译码执行?
    我认为:OS仅仅是把程序放在RAM的指定位置,(.NET增加个JIT步骤,)然后进行虚拟地址的映射,就跳转到exe文件代码段运行。
    当然,如果OS是32bit,指针就是32bit,无法定位64bit空间。
    都知道DOS是16位OS,难道说DOS下的软件还要用子程序来执行32位运算?DOS下编译的C程序是有32位选项的
      

  10.   

    如果.NET不能实现在32bit OS用64bit指令计算Int64,只是MS现在没有做好,而不是不可能。
    我想MS不会说这是无法实现的
      

  11.   

    编译后的中间代码是一样的,最终以什么方式运行取决于目标机的cpu,framework会识别本机的cpu,并编译成最终的目标代码,这是一个jit的优化问题,和源代码无关