c语言二进制十进制十六进制之间的转化(详解,含源代码)
二进制转化为十进制
#include<stdio.h>
int main()//将二进制转化成十进制
{//整数部分double sum = 0; char ch;while ((ch = getchar()) != '\n'){if (ch == '.')break;sum = sum * 2 + ch - '0';}//小数部分double weight = 1; //weight是小数后的权重double tmp = 1;if (ch == '.'){{while ((ch = getchar()) != '\n'){weight = weight * (tmp / 2);sum = sum + (ch - '0') * weight;}}printf("%lf\n", sum);}else//如果没有小数的话printf("%d", (int)sum); //将double类型的sum强制转化为int型return 0;
}
字符-‘0’ 就代表字符转化为一个数子,如 ‘8’ - ‘0’==8;
十进制转化为二进制
#include<stdio.h>
int main()//将带小数点的十进制转化为二进制
{//整数部分double sum = 0; int i = 0; printf("请输入一个带小数点的十进制数字:"); scanf_s("%lf", &sum); double ret = sum; int arr[18] = { 0 };
for (i = 0; i < 18; i++)
{arr[i] = (int)sum % 2;sum = sum / 2;
}while (arr[i-1]==0)//去掉前面多余的零{i--;}for (; i>0; i--){printf("%d", arr[i-1]);}/*for (i = 17; i >= 0; i--){printf("%d", arr[i]);}*/printf(".");//小数部分i = 0;double num = 0;int tmp = (int)ret; double j = 1;num = ret - tmp; int arr1[18] = { 0 };double weight = j / 2; double ret1 = 0;do{if ((ret1 <= num)&&((ret1 + weight)<=num)){ret1 = ret1 + weight;arr1[i] = 1;i++;weight = weight / 2;if (i > 16)//控制小数点后的位数break;}else if (ret1 == num)break;else{i++;weight = weight / 2;arr1[i] = 0;if (i > 17)break;}} while (ret1 != num);for (i = 0; i<17; i++) //打印出结果{printf("%d", arr1[i]);}return 0;
}
把题目分成三部分,整数部分,小数点,小数部分
其中的小数部分就需要第一步把小数分离出来
其次是实现ret1与小数部分num相等
十六进制转化为二进制
#include<stdio.h>
#include<string.h>
int main()
{char ch; int i = 0; char s[32] = "";while ((ch = getchar()) != '\n'){switch (ch)//十六进制的每一种情况转化为二进制{case '0':strcat(s, "0000"); break;case'1':strcat(s, "0001"); break;case '2':strcat(s, "0010"); break;case '3':strcat(s, "0011"); break;case '4':strcat(s, "0100"); break;case '5':strcat(s, "0101"); break;case '6':strcat(s, "0110"); break;case '7':strcat(s, "0111"); break;case '8':strcat(s, "1000"); break;case '9':strcat(s, "1001"); break;case 'A':strcat(s, "1010"); break;case 'B':strcat(s, "1011"); break;case 'C':strcat(s, "1100"); break;case 'D':strcat(s, "1101"); break;case 'E':strcat(s, "1110"); break;case 'F':strcat(s, "1111"); break;}}while (s[i]=='0')//接下来的操作是将整个字符串的零去掉{i++;}for (; i < 32; i++){printf("%c", s[i]);}return 0;
}
欢迎点赞收藏加关注,如若有问题可以题出来
c语言二进制十进制十六进制之间的转化(详解,含源代码)相关推荐
- Kotlinkotlin二进制与十六进制之间的转化
2019独角兽企业重金招聘Python工程师标准>>> JAVA Code: public class HexUtils {/** * 十六进制String转换成Byte[] * @ ...
- 利用栈实现把十进制数转换为二进制至十六进制之间的任一进制数并输出的功能。(第二版)
[实验题目内容] 保持计算机默认的十进制不变(要求不用C++流操纵符转换基数为八进制形式oct,不用C++流操纵符转换基数为十六进制形式hex,也不用setbase(base)函数将基数设置为base ...
- 利用栈实现把十进制数转换为二进制至十六进制之间的任一进制数并输出的功能。
利用栈实现把十进制数转换为二进制至十六进制之间的任一进制数并输出的功能. [实验题目内容] [实验环境](使用的软件):VS - 2010 [项目设计源代码] [项目测试运行结果截图] [实验题目内容 ...
- php 十六进制变中文版,php 汉字转化成 二进制 十进制 十六进制 数目字
php 汉字转化成 二进制 十进制 十六进制 数字 /** * 把一个汉字转为unicode的通用函数,不依赖任何库,和别的自定义函数,但有条件 * 条件:本文件以及函数的输入参数应该用utf-8编码 ...
- 微型计算机有多少进制,微型计算机原理二进制十进制十六进制.doc
微型计算机原理二进制十进制十六进制 1:微处理器和微型计算机的发展 自1946年世界上第一台计算机问世以来,计算机科学与技术得到了飞速的发展,短短50多年时间,已经经历了电子管.晶体管.集成电路.超大 ...
- C语言二进制转换为十六进制(附完整源码)
C语言二进制转换为十六进制 C语言二进制转换为十六进制完整源码 C语言二进制转换为十六进制完整源码 #include <stdio.h>int main() {long int binar ...
- 二进制十进制十六进制转换_二进制数制到十进制数制的转换
二进制十进制十六进制转换 Prerequisite: Number systems 先决条件: 数字系统 To convert binary number to its respective deci ...
- 电子技术基础(三)__第5章 数字电路基础__二进制与十六进制之间的相互转换
二进制与十六进制之间的相互转换 由于16 = ,因此1位 十六进制数相当于4位二进制数, 这样, 十六进制数与二进制数之间的相互转让是十分方便的. 二进制整数转换成十六进制数的方法是: 从二进制数的 ...
- c语言数据类型int的用法,C语言基本数据类型:整型(int)用法详解|C语言学习
C语言基本数据类型:整型(int)用法详解 1. 整型 int C 语言提供了很多整数类型(整型),这些整型的区别在于它们的取值范围的大小,以及是否可以为负.int 是整型之一,一般被称为整型.以后, ...
- python中文字符串多余空格_python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解...
python使用正则表达式去除中文文本多余空格,保留英文之间空格方法详解 在pdf转为文本的时候,经常会多出空格,影响数据观感,因此需要去掉文本中多余的空格,而文本中的英文之间的正常空格需要保留,输入 ...
最新文章
- 多处理与线程Python
- C语言检查列表是否是回文的算法(附完整源码)
- php webview,Android:控件WebView显示网页 – tinyphp – 博客园
- JAVA之NIO按行读写大文件,完美解决中文乱码问题
- 票据的生命周期与人的灵魂
- “瘟疫”笼罩下的物联网危与机
- HPE公司升级其闪存存储产品系列
- Unity 资源加载卸载过程
- OOP(面向对象)总结(有这一篇足矣)
- 什么是盒子模型,盒子模型,标准盒模型,怪异盒模型,两种盒模型的区别,box-sizing属性
- pacman基本命令
- LTE 中的CQI,PMI,RI上报机制
- 高等数学(第七版)同济大学 习题1-3 个人解答
- kubesphere多节点在线安装
- 家装建材行业解决方案
- Python 去除图片中多种颜色或者单一颜色
- 个人学习之C++ 头文件.h与.cpp
- linux中giep命令作用,Linux查看硬件信息以及驱动设备的命令
- “快到没朋友”的目标检测模型YOLO v3问世,之后arXiv垮掉了…
- map循环取值 keyset与entryset区别