在c语言中如何确定一个数据的位数

 我来答
流星不死
2013-12-20 · TA获得超过1662个赞
知道小有建树答主
回答量:1621
采纳率:0%
帮助的人:1307万
展开全部

除位法

#include<stdio.h>
main()
{
    int n,k=0;
    scanf("%d",&n);
    while(n)
    {
        n/=10;
        k++;
    }
    printf("%d",k);
}

对数法

#include<stdio.h>
#include<math.h>
main()
{
    int n,k;
    scanf("%d",&n);
    k=log(n)/log(10)+1;
    printf("%d",k);
}

char型数组法

#include<stdio.h>
#include<math.h>
main()
{
    char n[100],k;
    gets(n);
    for(k=0;n[k];k++)
    ;
    printf("%d",k);
}

数组转换法

#include<stdio.h>
#include<string.h>
main()
{
    char str[20];
    int n;
    scanf("%d",&n);
    sprintf(str,"%d",n);
    printf("%d\n",strlen(str));
}

您好,很高兴为您解答,流星不死为您答疑解惑

如果本题还有不懂的地方请追问,望采纳我的回答。

祝楼主学习进步。

上面的代码可以直接复制到编译器里,带换行。

juner3213
2015-09-19 · TA获得超过1135个赞
知道小有建树答主
回答量:897
采纳率:50%
帮助的人:228万
展开全部
8个位一个字节,
一般32为机器中, int 为4 字节
int a;
int b= sizeof(a) b=4则32位, b=8 为64位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
科G栈
2013-12-20 · TA获得超过174个赞
知道小有建树答主
回答量:128
采纳率:0%
帮助的人:103万
展开全部
你所得位数是指数据类型的位数吗?是指数据占几个字节吗?
可以用sizeof(数据类型);如n=sizeof(int);n就为4;
如果你问的不是这个意思,请追问,我会继续回答。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
楚506
2013-12-20 · 超过12用户采纳过TA的回答
知道答主
回答量:59
采纳率:0%
帮助的人:30.6万
展开全部
如果是整型的话,就直接用这个数除以1,10,100,1000,10000,100000.。。就行啊,如果是一位数,除以1的结果会在1和9中间,如果是2位数,除以100的结果是1到9之间。。。。就这样判断,看什么时候的结果是1到9之间。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰火梦幻
2013-12-20 · TA获得超过2308个赞
知道小有建树答主
回答量:1095
采纳率:57%
帮助的人:420万
展开全部
int GetDigitNumber(int N)
{
    int result = 0;
    while (N > 0)
    {
        result++;
        N /= 10;
    }
    
    return result;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式