(c语言)十进制转换二,八,十六进制

分手后的思念是犯贱 2022-12-19 09:12 246阅读 0赞

十进制转换

代码转换为其原码
若为负数,请自行转换其补码;
(16进制,自行查取ABC…F)
代码如下:

  1. #include<stdio.h>
  2. #include <math.h>
  3. void aj(int b,int n);
  4. void ab();
  5. void aj2(float i,int n);
  6. int s[32];
  7. int main(){
  8. float a1,a2;
  9. int b,n;
  10. printf("最大范围为2的32次方");
  11. while(1){
  12. printf("\n输入十进制数:");
  13. scanf("%f",&a1);
  14. printf("输入转换的进制数");
  15. scanf("%d",&n);
  16. b=a1;//正数
  17. a2=a1-b;
  18. printf("整数部分的原码为:");
  19. aj(b,n);
  20. printf("小数部分的原码为:");
  21. aj2(a2,n);
  22. }
  23. }
  24. void aj(int b,int n){
  25. int i=0;
  26. if(b>0){
  27. while(i<32){
  28. s[i++]=b%n;//转换
  29. b=b/n;
  30. }
  31. }
  32. else{
  33. b=fabs(b);
  34. while(i<31){
  35. s[i++]=b%n;
  36. b=b/n;
  37. }
  38. s[31]=1;
  39. }
  40. ab();
  41. }
  42. void ab(){
  43. int m=31;
  44. while(m>=0){
  45. printf("%d",s[m--]);//倒序
  46. }printf("\n");
  47. }
  48. void aj2(float a2,int n){
  49. int i=0,j;
  50. int l[4];
  51. while(i<4){
  52. l[i]=j=a2*n;//小数转换
  53. a2=a2*n-j;
  54. printf("%d",l[i]);
  55. i++;}
  56. }

写的些许糙,勿喷。。。。。

发表评论

表情:
评论列表 (有 0 条评论,246人围观)

还没有评论,来说两句吧...

相关阅读