• 博客访问： 198270
• 博文数量： 26
• 博客积分： 567
• 博客等级： 中士
• 技术积分： 420
• 用 户 组： 普通用户
• 注册时间： 2011-06-05 18:48

2011年（26）

2011-11-30 16:59:22

floatdouble型数据分别是单精度和双精度型数，他们的取值分别是3.4E+10的负38次方到3.4E+1038次方，和1.7E+10的负308次方到1.7E+10308次方。

float a=3234567.1;

float b=3234567;

if( a==b )

printf("YES");

else

printf("NO");

unsigned __int64 n;

char buffer[65];

printf("%s", _ui64toa(n, buffer,10) );

#include

#include

int main( void )

{

char buffer[65];

int r;

for( r=10; r>=2; --r )

{

_itoa( -1, buffer, r );

printf( "base %d: %s (%d chars)\n", r, buffer, strlen(buffer) );

}

printf( "\n" );

for( r=10; r>=2; --r )

{

_i64toa( -1L, buffer, r );

printf( "base %d: %s (%d chars)\n", r, buffer, strlen(buffer) );

}

printf( "\n" );

for( r=10; r>=2; --r )

{

_ui64toa( 0xffffffffffffffffL, buffer, r );

printf( "base %d: %s (%d chars)\n", r, buffer, strlen(buffer) );

}

}

Output

base 10: -1 (2 chars)

base 9: 12068657453 (11 chars)

base 8: 37777777777 (11 chars)

base 7: 211301422353 (12 chars)

base 6: 1550104015503 (13 chars)

base 5: 32244002423140 (14 chars)

base 4: 3333333333333333 (16 chars)

base 3: 102002022201221111210 (21 chars)

base 2: 11111111111111111111111111111111 (32 chars)

base 10: -1 (2 chars)

base 9: 145808576354216723756 (21 chars)

base 8: 1777777777777777777777 (22 chars)

base 7: 45012021522523134134601 (23 chars)

base 6: 3520522010102100444244423 (25 chars)

base 5: 2214220303114400424121122430 (28 chars)

base 4: 33333333333333333333333333333333 (32 chars)

base 3: 11112220022122120101211020120210210211220 (41 chars)

base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)

base 10: 18446744073709551615 (20 chars)

base 9: 145808576354216723756 (21 chars)

base 8: 1777777777777777777777 (22 chars)

base 7: 45012021522523134134601 (23 chars)

base 6: 3520522010102100444244423 (25 chars)

base 5: 2214220303114400424121122430 (28 chars)

base 4: 33333333333333333333333333333333 (32 chars)

base 3: 11112220022122120101211020120210210211220 (41 chars)

base 2: 1111111111111111111111111111111111111111111111111111111111111111 (64 chars)

PS：可以用这个函数来将10进制整数转换成二进制字符串；

int main( void )

{

char buffer[65];

_itoa( 12, buffer, 2 );

printf( "base %d: %s (%d chars)\n", r, buffer, strlen(buffer) );

}