怎么统计输入整数的位数?

zhou_steven 2002-08-04 10:13:14
用除法除吗?还是有什么函数?
...全文
292 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
不解 2002-08-04
  • 打赏
  • 举报
回复
CString str;
str.Format("%d",yourinterge);
len=str.GetLength();//len is the value
antimicrosoft 2002-08-04
  • 打赏
  • 举报
回复
我只有汇编的算法,用ax传递操作数

PUBLIC BASDEC,UBSDEC
DATA SEGMENT
CONT DW 10000,1000,100,10,1
TEM DB " "
BUF DB 0AH,0DH, 70 DUP(?)
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BASDEC PROC FAR
PUSH DS
PUSH AX
MOV AX,DATA
MOV DS,AX
POP AX
PUSHF
MOV TEM,'+'
AND AX,AX
JNS JMP1
MOV TEM,'-'
NEG AX
JMP1: POPF
POP DS
UBSDEC LABEL FAR
PUSH DS
PUSH AX
MOV AX,DATA
MOV DS,AX
POP AX
PUSHF
PUSH BX
PUSH DI
PUSH DX
PUSH CX
LEA BX,BUF
PUSH BX
ADD BX,2
MOV CH,TEM
MOV [BX],CH
INC BX
MOV TEM," "
LEA DI,CONT
GOON: MOV CL,[DI]
CWD
DIV WORD PTR [DI]
ADD AL,30H
MOV [BX],AL ;FOCUS
INC BX
INC DI
INC DI
MOV AX,DX
CMP CL,1
JNZ GOON
MOV BYTE PTR [BX],'$'
POP DX
MOV AH,9
INT 21H
POP CX
POP DX
POP DI
POP BX
POPF
POP DS
RET
BASDEC ENDP
CODE ENDS
END
xiaott 2002-08-04
  • 打赏
  • 举报
回复
#include<stdio.h>
void main()
{
int i=1,j,a;
scanf("%d",&a);
j=a;
while(a>10)
{i++;a/=10;}
printf("整数%d的位数是:%d",j,i);
}
sunx007 2002-08-04
  • 打赏
  • 举报
回复
也可以这样:

char ch[100];
int n=100;
int nlen=sprintf(ch,"%d",n);
nlen就是位数
陈硕 2002-08-04
  • 打赏
  • 举报
回复
楼上结果的还要加一才行 :)
sunspot_lee 2002-08-04
  • 打赏
  • 举报
回复
以10为底求对数,然后向下取整:floor(log10(x))
langhaixin 2002-08-04
  • 打赏
  • 举报
回复
int i,j;
int ch[100];
scanf("%d",&i);
sprintf(ch,"%s",i);
j=strlen(ch);
笑面佛_正版 2002-08-04
  • 打赏
  • 举报
回复
这很简单,自己写就行了

int i,s;
i=0;
for(s=12345;s>0;s=s/10)
i++;
不知是否会5位时答案却是4或是6,最后再加1或减1,我不替你调试了.
zheng_can 2002-08-04
  • 打赏
  • 举报
回复
我觉得还是直接用 while 循环来算比较好
其他的方法有点匪夷所思,使别人不能够一下子看出代码的目的,不是很好
fatalerror99 2002-08-04
  • 打赏
  • 举报
回复
C 语言标准函数 char * itoa ( int num, char * str, int radix ),把整数 num 转换成与其等价的字符串,并把结果放在 str 指向的字符串中,输出的进制由 radix 决定。
然后统计字符串中字符的个数不就行啦,不必那么麻烦吧。
fangrk 2002-08-04
  • 打赏
  • 举报
回复
int getNum(int n)
{ if(n<0) n*=-1;
if(n==0) return 1;
int r=0;
while(n){
++r;
n/=10;
}
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧