| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1237 人关注过本帖
标题:重金悬赏,如何判断一个整数有多少位???(暂时不用考虑超大整数的问题)
取消只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
结帖率:99.76%
收藏
已结贴  问题点数:100 回复次数:2 
重金悬赏,如何判断一个整数有多少位???(暂时不用考虑超大整数的问题)
程序代码:
#include <stdio.h>
#include <math.h>
#include <string.h>

int nbits_1(int source)
{
    int bit=0;
    while(source)
    {
        source/=10;
        bit++;
    }
    return bit;
}

int nbits_2(int source)
{
    return (int)log10((double)source)+1;
}

int nbits_3(int source)
{
    char t[20]={'\0'};
    sprintf(t,"%d",source);
    return (int)strlen(t);
}

int nbits_3_1(int source)
{
    char t[20]={'\0'};
    return sprintf(t,"%d",source);
}

int nbits_3_2(int source)
{
    return printf("%d",source);
}

int nbits_4(int source)
{
    int count=1;
    while (source/(int)pow(10.00,count)>=1) count++;
    return count;
}

int nbits_5(int source)
{
    if(source>=0 && source<10) return 1;
    if(source>=10 && source<100) return 2;
    if(source>=100 && source<1000) return 3;
    if(source>=1000 && source<10000) return 4;
    if(source>=10000 && source<100000) return 4;
    if(source>=100000 && source<1000000) return 6;
    //............
}

int main(void)
{
    int  p=888999;
    printf("1.bits=%d\n",nbits_1(p));
    printf("2.bits=%d\n",nbits_2(p));
    printf("3.bits=%d\n",nbits_3(p));
    printf("3_1.bits=%d\n",nbits_3_1(p));
    printf("3_2.bits=%d\n",nbits_3_2(p));
    printf("4.bits=%d\n",nbits_4(p));
    printf("5.bits=%d\n",nbits_5(p));
    return 0;
}


我不知道利用位运算 是否能弄出来  是否还有其他的方法

[ 本帖最后由 wp231957 于 2014-7-24 10:29 编辑 ]
搜索更多相关主题的帖子: source 如何 
2014-07-24 10:20
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 2 楼 xufan
我写的
int nbits_3(int source)
{
    char t[20]={'\0'};
    sprintf(t,"%d",source);
    return (int)strlen(t);
}

这个和你的貌似一样的吧

DO IT YOURSELF !
2014-07-24 10:28
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 8 楼 步向巅峰
我在主贴中已经列举了7种实现方案  其中就包含你的办法

我只是想知道是否还有其他办法了

DO IT YOURSELF !
2014-07-24 16:47
快速回复:重金悬赏,如何判断一个整数有多少位???(暂时不用考虑超大整数的问 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029115 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved