在c语言中如何确定一个数据的位数
5个回答
展开全部
除位法
#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));
}
您好,很高兴为您解答,流星不死为您答疑解惑
如果本题还有不懂的地方请追问,望采纳我的回答。
祝楼主学习进步。
上面的代码可以直接复制到编译器里,带换行。
展开全部
8个位一个字节,
一般32为机器中, int 为4 字节
int a;
int b= sizeof(a) b=4则32位, b=8 为64位
一般32为机器中, int 为4 字节
int a;
int b= sizeof(a) b=4则32位, b=8 为64位
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你所得位数是指数据类型的位数吗?是指数据占几个字节吗?
可以用sizeof(数据类型);如n=sizeof(int);n就为4;
如果你问的不是这个意思,请追问,我会继续回答。
可以用sizeof(数据类型);如n=sizeof(int);n就为4;
如果你问的不是这个意思,请追问,我会继续回答。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果是整型的话,就直接用这个数除以1,10,100,1000,10000,100000.。。就行啊,如果是一位数,除以1的结果会在1和9中间,如果是2位数,除以100的结果是1到9之间。。。。就这样判断,看什么时候的结果是1到9之间。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int GetDigitNumber(int N)
{
int result = 0;
while (N > 0)
{
result++;
N /= 10;
}
return result;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询