⑴ 求帮助 用c语言编制程序 格雷码转换为自然二进制码
public:
MGraph(int mSize, const T& noedg);
~MGraph();
ResultCode Insert(int u, int v, T &w);
ResultCode Remove(int u, int v);
bool Exist(int u, int v) const;
int Vertices() const { return n; }
void Output();
protected:
⑵ 十进制转成格雷码
方法:
先转成十六进制;
再转成格雷码;
采用除基取余法
95/16,商5,余15,即十六进制数F
5/16,商0,余5
从上到下依次是个位、十位
所以,最终结果为(5F)16。
采用除基取余法
61/16,商3,余13,即十六进制数D
3/16,商0,余3
从上到下依次是个位、十位
所以,最终结果为(3D)16。
查表转换:
(95)10=(5F)16=(0111 1000)GR
(61)10=(3D)16=(0010 1011)GR
⑶ C语言十进制转二进制
十进制转二进制可以使用库函数itoa。
itoa函数原型:char*itoa(int value,char*string,int radix);
功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。
nt value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等。
(3)c语言十进制转格雷码扩展阅读:
方法
#include<stdio.h>
intmain(void)
{ inti=0,n,a[32];
printf("请输入一个十进制整数. ");
scanf("%d",&n);
while(n>0)
{a[i]=n%2;
i=i+1;
n=n/2; }
printf("十进制整数转换为二进制数是: ");
for(i--;i>=0;i--)
printf("%d",a[i]);
printf(" ");
return0;}
十进制整数转换为二进制整数的方法:
十进制整数转换为二进制整数采用"除2取余,逆序排列"法。
具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。
⑷ c语言怎么将十进制转化成二进制
#include <stdio.h>
void main()
{
//进制转换函数的声明
int transfer(int x);
int x;
printf("请输入一个十进制数:");
scanf("%d",&x);
printf("转换成二进制数是:%d ",transfer(x));
}
int transfer(int x)
{
int p=1,y=0,yushu;
while(1)
{
yushu=x%2;
x/=2;
y+=yushu*p;
p*=10;
if(x<2)
{
y+=x*p;
break;
}
}
return y;
}
89÷2 ……1
44÷2 ……0
22÷2 ……0
11÷2 ……1
5÷2 ……1
2÷2 ……0
1
十进制小数转二进制数:“乘以2取整,顺序排列”(乘2取整法)
网络-二进制
⑸ c语言实现格雷码转换为二进制
把十进制小数乘以2,取其积的整数部分作对应二进制小数的最高位系数k -1 再取积的纯小数部分乘以2,新得积的整数部分又作下一位的系数k -2 ,再取其积的纯小数部分继续乘2,…,直到乘积小数部分为0时停止,这时乘积的整数部分是二进制数最低位系数,每次乘积得到的整数序列就是所求的二进制小数。这种方法每次乘以基数取其整数作系数。所以叫乘基取整法。需要指出的是并不是所有十进制小数都能转换成有限位的二进制小数并出现乘积的小数部分0的情况,有时整个换算过程无限进行下去。此时可以根据要求并考虑计算机字长,取定长度的位数后四舍五入这时得到的二进制数是原十进制数的近似值。
⑹ 十进制转格雷码计算器
4个2进制位为一个16进制数,2进制1111为16进制F,2进制中千位的1=8,百位的1=4,十位的1=2,个位的1=1,将各个位的数作相应转换再相加,的到的数就是10进制数0-15,可轻松转换成16进制.如01011100,可看成是两组2进制数0101和1100,则这个数就是16进制的5C.
10转16:
100以内一点的10转16心算比较快,复杂的用“计算器”算了.10转16用传统的计算方式可以了,就是大于15小于256的10进制数除以16为的值为十位的16进制数,其余数为个位的16进制数,没余数则个位为0.如61的16进制是3D,61除以16得3余13,3作十位数,13转成D为各位数.
16转10:
用相反的道理,将十位数乘以16加上个位数.如5A,将5乘以16得80,加上A的10进制10,结果是90.
请参考
⑺ c语言十进制转换
十进制的任意转换
#include
#include
int
main()
{
int
a,b,c,n
=
0,m[40];
printf("请输入你想算得数
=__\b\b");
scanf
("%d",&a);
printf("
请输入你想算的进制
=__\b\b");
scanf
("%d",&b);
while
(a
!=
0)
{
n
++
;
c
=
a
%
b;
m[n]
=
c;
a
=
a
/
b;
}
for
(a
=
n;
a
>=
1;a--)
printf
("%d",m[a]);
return
0;
}
⑻ c语言输入一个十进制数,把它转换成各种进制然后输出
请在此输入您的
#include<stdio.h>
int main()
{
long n;
int a[1000], b, i, j, r;
while (scanf("%ld%d", &n, &r) != EOF)
{
if (n < 0) {n = -n; printf("-"); }
if (n == 0) printf("0");
i = 0;
while (n > 0)
{
b = n % r;
a[i] = b;
n = n / r;
i++;
}
for (j = i - 1; j >= 0; j--)
{
if (a[j] == 10) printf("A");
else if (a[j] == 11) printf("B");
else if (a[j] == 12) printf("C");
else if (a[j] == 13) printf("D");
else if (a[j] == 14) printf("E");
else if (a[j] == 15) printf("F");
else printf("%d", a[j]);
}
printf("\n");
}
return 0;
}
回答
⑼ 如何将十进制转换成格雷码
转换方法:
方法:
1、先将十进制转成十六进制;
2、再将十六进制转成格雷码;
采用除基取余法
例如:十进制95转格雷码
95/16,商5,余15,即十六进制数F
5/16,商0,余5
从上到下依次是个位、十位
所以,最终结果为(5F)16。
⑽ C语言十进制转二、八、十六进制
只是要输出的话可以用printf函数中的%x输出十六进制,%c输出八进制,%b输出二进制。