C++程序设计一(进制转换)
文章目录
- 任务 1
- Notes:
- Answer:
任务 1
编写一个 C++ 程序,将二进制数转换为十进制数 并将十进制数转换为二进制数。 该程序会提示用户输入一个数字。 您必须将数字作为字符串读取。 如果数字是二进制数,则将其转换为十进制数。 如果数字是十进制,则将其转换为二进制。 如果数字无效,则必须显示相应的错误消息。使用下面的示例来
(a) 查看需要什么以及
(b) 查看可能发生的输出类型
Notes:
1.十进制数必须在 0 到 255 之间(你必须检查这个)
2.二进制数不能超过 9 个二进制数字(你必须检查这个)
3.一个二进制数必须始终输入 前导零(您输入的第一个数字必须是 0)
4. 十进制数不能带前导零(检查这个)
5. 十进制数不能用前导零显示
6. 二进制数必须始终显示为 8 位 4 位后有一个空格(参见示例)
7. 输入二进制数时不会使用空格——您不必检查这一点
8. 有几种不同的错误消息——参见示例 4 到 7
9.不要使用空格 将二进制转换为十进制的库函数——编写你自己的函数
10.不要使用库函数将十进制转换为二进制——编写你自己的函数11.你必须至少包含两(2)个函数(这些可能是上面的 9 和 10)
您的显示必须与下面显示的示例相同。
Example 1:
Enter a number: 8Converting decimal to binary. The result is 00001000
Example 2:
Enter a number: 010Converting binary to decimal. The result is 2
Example 3:
Enter a number: 10Converting decimal to binary. The result is 00001010
Example 4:
Enter a number: helloThis is not a valid number.
Example 5:
Enter a number: 027This is not a valid binary number.
Example 6:
Enter a number: 256Thisdecimal number is outside the range 0 to 255.
Example 7:
Enter a number: 00101001010This binary number has more than 9 binary digits.
Answer:
总是有不止一种可能的解决方案。以下是一种可能的解决方案——它不是唯一的解决方案。
#include <iostream>
#include <cstdlib> // need this for exit
using namespace std;
void binarytodecimal(string s);
void decimaltobinary(string s);
string convert(int num);
int main() {string str;cout << "Enter a number ";cin >> str;if (str[0] == '0') {binarytodecimal(str);} else {decimaltobinary(str);}
}
void binarytodecimal(string s) {int value, len, i;value = 0;len = s.length();if (len > 9) {cout << "This binary number has more than 9 binary digits.\n";exit(20);}for (i = 0; i < len; i++) {if ((s[i] == '0') || (s[i] == '1')) {value = value * 2 + s[i] - 48;} else {cout << "This is not a valid binary number.\n";exit(22);}}cout << "Converting binary to decimal. The result is ";cout << value << endl;
}
void decimaltobinary(string s) {string binary;int value, len, i;value = 0;len = s.length();for (i = 0; i < len; i++) {if ((s[i] >= '0') && (s[i] <= '9')) {value = value * 10 + s[i] - 48;} else {cout << "This is not a valid number.\n";exit(24);}}if ((value < 0) || (value > 255)) {cout << "This decimal number is outside the range 0 to 255.\n";exit(26);}binary = convert(value);cout << "Converting decimal to binary. The result is ";cout << binary << endl;
}
string convert(int num) {// convert num to binary and display the resultint len, i;char digit;string temp, result, display;i = 0;temp = "";while (num > 0) {digit = (num % 2) + 48;temp = temp + digit;num = num / 2;}// include extra zeros to get to 8 binary digitslen = temp.length();while (len < 8) {temp = temp + "0";len = temp.length();}// reverse temp to get the resultresult = "";len = temp.length();for (i = len - 1; i >= 0; i--) {result = result + temp[i];}// place a space after first 4 digitsdisplay = "";for (i = 0; i < 4; i++) {display = display + result[i];}display = display + " ";for (i = 4; i < 8; i++) {display = display + result[i];}return display;
}
第一个任务只是预热,后面还有第二第三个任务
C++程序设计一(进制转换)相关推荐
- C语言程序设计算法题 -- lab09(1036 - 1039) 二分查找 itob 进制转换 Expands shorthand notations
1036.二分查找 #include <stdio.h>int binarySearch(int a[], int n, int x) {// TODO: your function de ...
- 计算机中的数制和编码教案,计算机《数制与编码进制转换》公开课教案.doc
<计算机应用基础>教案 新田县职业中学 蒋玲 PAGE PAGE 7 数制与编码--进制转换 [学情分析]本课内容是在学生已经学习了计算机发展与应用.计算机系统的组成等知识的基础上进行,已 ...
- 计算机教育的进制转换,计算机数制及编码进制转换公开课教学教育资料.doc
计算机数制及编码进制转换公开课教学教育资料.doc 数制与编码进制转换[学情分析]本课内容是在学生已经学习了计算机发展与应用.计算机系统的组成等知识的基础上进行,已经初步知道了人与计算机进行信息交换通 ...
- 10进制转换16进制补足0_信息技术教师资格必考内容——进制换算(一)
前两天给大家整理了信息技术教师资格笔试科目三的必考内容,戳蓝字回顾弄懂这些,信息技术教师资格笔试提高30分!信息技术教师资格笔试--这道20分的题居然这么简单!有小伙伴问还有哪些必考内容进制换算也是必 ...
- javascript进制转换_《算法笔记》3.5小节——入门模拟-gt;进制转换
@[TOC] # Contest100000579 - <算法笔记>3.5小节--入门模拟->进制转换 ## 例题 ### PATB1022 PTA | 程序设计类实验辅助教学平台 ...
- JSK-127 进制转换【进制】
进制转换 相信你知道2进制,16进制吧?是否听说过7进制呢?或者9进制? 10进制转2进制是挺简单的,那么转其他进制呢? 没错,右侧的代码实现10进制数到任意进制(2~9)的转换,试试修改吧- 修改后 ...
- 【C语言】变量和常量、数据类型、进制转换、数据存储
目录 1. 变量 1.1 变量的分类 1.1.1 局部变量 1.1.2 全局变量 1.2 变量的使用 1.3 变量的作用域和生命周期 1.3.1 作用域 1.3.2 生命周期 2. 常量 2.1 字面 ...
- 进制转换(进制转换)
进制转换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- 计算机二进制转化教案及ppt,计算机《数制与编码-进制转换》公开课教案.doc
文档介绍: 计算机<数制与编码-进制转换>公开课教案数制与编码--进制转换[学情分析]本课内容是在学生已经学****了计算机发展与应用.计算机系统的组成等知识的基础上进行,已经初步知道了人 ...
- 计算机的进制单位,计算机存储单位和进制转换
<计算机存储单位和进制转换>由会员分享,可在线阅读,更多相关<计算机存储单位和进制转换(7页珍藏版)>请在人人文库网上搜索. 1.C语言发展历史,CPU指令系统,由0.1序列构 ...
最新文章
- 微服务开源项目ServiceComb 毕业成为Apache顶级项目
- centos 7.3 开放端口并对外开放
- HDU 3397 Sequence operation
- [bzoj 2555]Substring
- underscorejs-groupBy学习
- 【C语言进阶深度学习记录】十一 C语言中enum,sizeof,typedef分析
- html5网页制作图文混排,03第3章制作图文混排网页.docx
- Topology and Geometry in OpenCascade-Face
- 计算机技术Control,聚变控制计算机 (Fusion Control Computer)
- zabbix应用之discovery批量添加主机并实现自定义主机名
- 微信小游戏 H5 排行榜源码
- 自我介绍及阅读与思考及未来的期望
- matlab数据导出wps,怎么把金山WPS表格的数据导入MATLAB/
- CSDN 写文章报错:标题含有非法字符,请修改的解决方法
- day08---(05)课程大纲-章节和小节列表功能(接口)
- 如何实现会议异地实时连线直播
- Java基础学习总结(149)——日志打印是一门技术
- abaqus的python安装文件在哪_python - 在ABAQUS 6.14 python环境中安装熊猫 - 堆栈内存溢出...
- 贵州大学计算机类是211吗,贵州大学排名,唯一一所211排名一百以后,本科一批只有两所...
- position常用属性值