| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 605 人关注过本帖
标题:八进制数字->十进制整数
只看楼主 加入收藏
wiseley747
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2012-8-16
结帖率:100%
收藏
已结贴  问题点数:5 回复次数:3 
八进制数字->十进制整数
程序代码:
/*给定程序MODI1.C 中函数fun 的功能是:将一个由八进制数字字符组成的字符
串转换为与其面值相等的十进制整数。规定输入的字符串最多只能包含5 位八进制
数字字符。
例如,若输入:77777,则输出将是:32767。*/
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

int fun( char *p ){
   int n;                 
   n= *p-'0';     //???
   p++;             //???
   while( *p!=0 ) {   //???
     n=n*8+*p-'0';   //????
     p++;            //???
    }
return n;
}


int main(){
  char s[6];
  int i;
  int n;
  printf("Enter a string (Ocatal digits): ");
  gets(s);
  if(strlen(s)>5){
    printf("Error: String too longer !\n\n");
    exit(0);
     }
   for(i=0; s[i]; i++)
   if(s[i]<'0'||s[i]>'7'){
      printf("Error: %c not is ocatal digits!\n\n",s[i]);exit(0); }
      printf("The original string: ");
      puts(s);
      n=fun(s);
      printf("\n%s is convered to integer number: %d\n\n",s,n);
      system("pause");
      return 0;
}
fun這個函数
裡面的指針看不是很懂
望先進給點建議
搜索更多相关主题的帖子: 输入 八进制 十进制 字符串 
2012-08-28 14:13
stophin
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:227
专家分:618
注 册:2010-3-26
收藏
得分:5 
比如"12345"
首先n赋值'1'-'0',也就是整数1,p向后加,指向'2'
然后做循环,直到p指向字符串结束
循环里面是这样的
n=1   1*8+'2'-'0'=10->n
n=10  10*8+'3'-'0'=83->n
n=83  83*8+'4'-'0'=668->n
n=668 668*8+'5'-'0'=5249->n
最后12345的十进制是5249

2012-08-28 17:01
wiseley747
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2012-8-16
收藏
得分:0 
回复 2楼 stophin
感謝阿  會意了
2012-08-28 17:50
wiseley747
Rank: 1
等 级:新手上路
帖 子:22
专家分:8
注 册:2012-8-16
收藏
得分:0 
回复 3楼 wiseley747
八進制轉十進制
原來可以從前面計算到後面
以前學的 都是從後面計算到前面
2012-08-28 17:56
快速回复:八进制数字->十进制整数
数据加载中...
 
   



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

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