#include "stdio.h"
void main ()
{
int decimal,i,j;
char trans[20];
printf("Enter a decimal number:\n");
scanf("%d",&decimal);
i=0;
while (decimal!=0)
{
trans[i++]=decimal%8+'0'; /*转换成相应数字字符的ASCII码值*/
decimal/=8;
}
for(j=i-1;j>=0;j--)
printf("%c",trans[j]);
printf("\n");
}
虽然有注释,但只是说明该语句在程序中的作用,该语句的具体意思我还是不懂,特别是decimal%8+'0',哪个大神来指点一二。
为什么要在decimal%8后写+‘0’?
追答转成对应字符的ascii码
C语言中十进制转八进制中的一段程序trans[i++]=decimal%8+'0'是...
decimal%8是decimal除8的余数,对应8进制数 decimal%8+‘0’ ‘0’+0是‘0’,‘0’+1是‘1’,等等
C++中十进制如何转换为八进制和十六进制
(1)间接法:先将十进制转换成二进制,然后将二进制又转换成八进制。(2)直接法:八进制是由二进制衍生而来的,因此可以采用与十进制转换为二进制相类似的方法,还是整数部分的转换和小数部分的转换,下面来具体讲解一下:①整数部分 方法:除8取余法,即每次将整数部分除以8,余数为该位权上的数,...
C 编程 ???把十进制数转换成八进制数
while(m>0)\/\/当位不为0时循环 { n=num\/m;if(n<9)\/\/由于转换为大于十进制的进制时,会输出字母,故判断符号值是否大于10 printf("%d",n);else printf("%c",n-10+'A');num=num%m;m=m\/base;} } 你要的八进制已经包括进去了!
C++设计一个函数将一个十进制数转化为八进制数
while (N){ Push(S, N % 8);N = N\/8;} while (!StackEmpty(S)) { Pop(S,e);printf ( "%d", e );} } \/\/ conversion
编写一个VC++程序把十进制数转化成二进制,八进制,十六进制。
printf("please input the integer:"); \/\/要转换的十进制数 scanf("%ld",&n);printf("please input the radix:"); \/\/ 进制数,可以为2、8、16 scanf("%d",&radix);trans(n,radix,a); \/\/调用函数 \/\/for(int i=strlen(b)-1;i>=0;i--)\/\/ printf("%c",*(b+i));...
在C#中如何将一个十进制数转换成一个8位的二进制数?,最好能用一条语句...
int i = 10;string a = Convert.ToString(i, 2);得到a的值:1010 你要求8位,但是如果的10进制数是12345则转换的值是11000000111001 如果你非要求是8位的话,他转化的值肯定就不正确了。
编程,输入一个10进制正整数,然后输出它所对应的八进制、十六进制...
可以参考下面的代码:include <stdio.h> int main(int argc, char* argv[]){ int num;scanf("%d",&num);printf("%o",num);return 0;}
C++中的2进制数转成8进制数代码如何写``
\/\/ 把二进制数字符串转化为十进制数 ulong to_decimal(const string& binary){ typedef string::const_reverse_iterator rite;ulong decimal = 0;for(rite rit = binary.rbegin(); rit != binary.rend(); ++rit){ if(*rit == '0'){ decimal >>= 1;} else { decimal >>= 1;decimal ...
用C++设计一个程序,输入一个十进制整数,输出相应的十六进制数。设计一...
代码文本:char d[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};void convertDecimal2Hex(int num, char* szHex){ szHex[0]=d[(unsigned)(num&0x0000000F)]; szHex[1]=d[(unsigned)(num&0x000000F0>>1*4)]; szHex[2]=d[(...
c语言中如何用移位的方法将一个10进制数转换为16进制,求代码
int pos;void change(int *num);int main(void){ char str[100];int num[100];int bin[300]={0};int quot[100],residue=0;int i,j,k=0,suffix=0,index=0;puts("Input a decimal number:");gets(str);for(i=0;i<strlen(str);num[i]=str[i]-48,i++);j=i-1;while(j>=...