请编一程序实现两种不同进制之间的数据转换

请编一程序实现两种不同进制之间的数据转换,第1张

分太少!

按你的题意,代码要求就比较高了。

以下代码仅供参考:(注意:十进制数 属于 正整数)

C语言编写的十进制转十六进制、八进制、二进制。

#include <stdioh>

#define N 1000

void main()

{

int p1,p2,p3,a[N],b[N],c[N], i,j,k,n;

printf("请输入十进制数:\n");

scanf("%d",&n);

p1=n;

for(i=0;p1>0;i++)

{

a[i]=p1%16;

p1/=16;

}

p2=n;

for(j=0;p2>0;j++)

{

b[j]=p2%8;

p2/=8;

}

p3=n;

for(k=0;p3>0;k++)

{

c[k]=p3%2;

p3/=2;

}

printf("十六进制:");

for(i--;i>=0;i--)

printf("%X ",a[i]);

printf("\n");

printf("八进制:");

for(j--;j>=0;j--)

printf("%d ",b[j]);

printf("\n");

printf("二进制:");

for(k--;k>=0;k--)

printf("%d ",c[k]);

printf("\n");

}

如果你可以看懂这个代码思路的话,你可以进一步进行扩展它的功能!

程序的多少要看程序占用的运存大小 如果占用运存大的话就开不了几个 如果占用小 就可以开很多个。

长按菜单建切换

S60和WM比起 S60比较容易上手 如果才玩智能机 S60足够了

我不太清楚这里所说的界面是什么意思,是Windows窗体吗,还是说命令行输出就行?而且里面提到的任意十进制数字有点不太明确,是不是整数,有没有超过 long 的表示范围。有没有负数,如果有的话,用多少位的补码表示?

如果假设既是整数,又没有超过long,并且没有负数的情况下,我可以给出下面的程序(windows窗口程序我做不了,我是用的Mac系统,只能给出命令行程序)

#include<stdioh>

char bases[] = "0123456789ABCDEF";

char change_base(char buff, int buff_len, long abs_num, int to_base) {

      int t = 0;

      / 缓冲区指针 /

      char bp = buff + buff_len;

      / 因为适合倒序使用缓冲区,因此将末尾置为 '\0' /

      (--bp) = '\0';

      while (abs_num > 0) {

              t = abs_num % to_base;

              (--bp) = bases[t];

              abs_num = (abs_num - t) / to_base;

      }

      return bp;

}

void main() {

  char buff[100] = "";

  long num = 0;

  int res, i, j, base = 0;

  printf("%s", "请输入十进制数字:");

  res = scanf("%ld", &num);

  if (res > 0) {

      printf("%s", "请输入要转成多少进制(2~16):");

      res = scanf("%d", &base);

      if (base < 2 || base > 16) {

          puts("输入进制数有误!"); return;

      }

              printf("%ld转换为%d进制的结果是:", num, base);

              if (num < 0) {

                      num = -num;

                      printf("-");

              }

              / 前面是全部输入输出和负数处理,

                根据不同运行环境可以进行不同 *** 作,

                下面是转换算法,

                入参为(结果缓冲区,缓冲区大小,待转换数字,转换后的进制),

                返回结果为缓冲区上的结果字符串指针

               /

              printf("%s\n", change_base(buff, sizeof(buff), num, base));

  } else {

      puts("输入错误");

  }

}

y = (money - (x1 10 + x2 5 + x3 2 + x4 1)) 100;

y1 = (int)y / 25;

y2 = (int)y % 25 / 10;

y3 = (int)y % 25 % 10 / 5;

y4 = (int)y % 25 % 10 % 5;

y 是double,但x 全是int所以,运算过程是int,所以结果是int的。。。。打印y出来看看吧

以上就是关于请编一程序实现两种不同进制之间的数据转换全部的内容,包括:请编一程序实现两种不同进制之间的数据转换、高分!!n95一次能开几个程序程序之间怎么转换有专用按键吗S60和WM哪个好各有什么特点、编制不同数制间的转换程序...(用c语言编写程序)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10103639.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存