<没事,散点分> 一直以来就想知道计算机能处理的最大无符号型整数和有符号型整数分别是多少<纯数字方式,而非字符模拟>
程序代码:
#include <stdio.h> #include <windows.h> int main(void) { DWORD u_m=4294967295; DWORD u_n=u_m; // 2^32=4294967296; //结论DWORD的最大值是2^32-1; DWORD u_out[100]={0}; DWORD u_i=2,u_j=0; while(u_i<=u_m) { if (u_m%u_i == 0) { u_out[u_j]=u_i; u_m=u_m/u_i; u_i=2; u_j++; } else { u_i++; } } u_j=0; while(u_out[u_j]>0) { if(u_out[u_j+1]>0) printf("%u*",u_out[u_j]); else printf("%u=",u_out[u_j]); u_j++; } printf("%u\n",u_n); //以下为分割线//////////////////////////////////////////////////////////////// _int64 m=9223372036854775807; _int64 n=m; // 2^63=9223372036854775808; //结论_int64的最大值是2^63-1; _int64 out[100]={0}; _int64 i=2,j=0; while(i<=m) { if (m%i == 0) { out[j]=i; m=m/i; i=2; j++; } else { i++; } } j=0; while(out[j]>0) { if(out[j+1]>0) printf("%I64d*",out[j]); else printf("%I64d=",out[j]); j++; } printf("%I64d\n",n); return 0; } /* 样例输出: 3*5*17*257*65537=4294967295 7*7*73*127*337*92737*649657=9223372036854775807 */
[ 本帖最后由 wp231957 于 2012-12-11 16:28 编辑 ]