首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

求最高位的权值解决方法

2012-02-05 
求最高位的权值请教大家一个问题:给定任意一个整数,位数不定,如何知道最高位的权值是多少?如:583:对应最高

求最高位的权值
请教大家一个问题:
给定任意一个整数,位数不定,如何知道最高位的权值是多少?
如:583:对应最高位权就是:100
4523   :     10000
233444:10000
那么:
3....4234呢?

不知道这样说大家是否明白了呢?

[解决办法]
每次除10,结果大于10,继续
计数器每次加1
从而可知最高位的权值
[解决办法]
#include <stdio.h>
#include <stdlib.h>


int main()
{
int i=12345, j=i;
int p=0;
while(i!=0){p++; i=i/10;} //循环做除法,直到为0即可
printf( "%d, 权值为%d\n ", j, p);
system( "PAUSE ");
return 0;
}
[解决办法]
或者这样,
使用字符串转化, 求字符串的长度即可:

#include <stdio.h>
#include <stdlib.h>


int main()
{
int i=12345;
char tmp[10]={0};
sprintf(tmp, "%d ", i);
printf( "%d, 权值为%d\n ", i, strlen(tmp));
system( "PAUSE ");
return 0;
}
[解决办法]
#include <stdio.h>
#include <stdlib.h>


jixingzhong(瞌睡虫·星辰) ( ) 信誉:100 Blog 2007-02-28 09:21:46 得分: 0
int main()
{
int i=12345, j=i;
int p=0;
while(i!=0){p++; i=i/10;} //循环做除法,直到为0即可
printf( "%d, 权值为%d\n ", j, p);
system( "PAUSE ");
return 0;
}
===========================
同意星辰的说法

[解决办法]
樓主要的 應該是
int p =1;
while(i!=0){p *= 10; i=i/10;} 吧
[解决办法]
同意楼上的

热点排行