| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 540 人关注过本帖
标题:从10进制转化成8进制
只看楼主 加入收藏
shfe
Rank: 1
等 级:新手上路
帖 子:17
专家分:5
注 册:2013-2-24
结帖率:66.67%
收藏
已结贴  问题点数:12 回复次数:2 
从10进制转化成8进制
char *get8String(long num)
{
int i = 0;
char *buffer = (char*)malloc(13);
char *temp;

buffer[0]='0';
buffer[12]='\0';
temp=buffer+1;

for(i=0;i<11;i++)
{
temp[i]=(char)(num<<3*i>>30);
temp[i]=temp[i]>=0?temp[i]:temp[i]+8;
temp[i]=temp[i]+48;
}
return buffer;
}
这上面从10进制转化成8进制怎么不行?
搜索更多相关主题的帖子: long 
2013-04-20 16:26
zhuxiaoneng
Rank: 4
等 级:业余侠客
威 望:2
帖 子:51
专家分:215
注 册:2013-4-10
收藏
得分:6 
代码写得很乱啊,你知道10进制转8进制的转换思想是什么吗?不明白可以参照下,10进制如何转换成2进制。
提示:求余运 %, 除法运算 /
2013-04-22 09:27
邓士林
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:淮河河畔
等 级:贵宾
威 望:61
帖 子:2392
专家分:13384
注 册:2013-3-3
收藏
得分:6 
(2)十进制转换为八进制
十进制转换成八进制有两种方法:
1)间接法:先将十进制转换成二进制,然后将二进制又转换成八进制
2)直接法:前面我们讲过,八进制是由二进制衍生而来的,因此我们可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下:
①整数部分
方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,而商继续除以8,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数起,一直到最前面的一个余数。
②小数部分
方法:乘8取整法,即将小数部分乘以8,然后取整数部分,剩下的小数部分继续乘以8,然后取整数部分,剩下的小数部分又乘以8,一直取到小数部分为零为止。如果永远不能为零,就同十进制数的四舍五入一样,暂取个名字叫3舍4入。
例:将十进制数796.703125转换为八进制数
解:先将这个数字分为整数部分796和小数部分0.703125
整数部分

小数部分

因此,得到结果十进制796.703125转换八进制为1434.55

Maybe
2013-04-22 10:33
快速回复:从10进制转化成8进制
数据加载中...
 
   



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

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