文章目录

  • 任务 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++程序设计一(进制转换)相关推荐

  1. C语言程序设计算法题 -- lab09(1036 - 1039) 二分查找 itob 进制转换 Expands shorthand notations

    1036.二分查找 #include <stdio.h>int binarySearch(int a[], int n, int x) {// TODO: your function de ...

  2. 计算机中的数制和编码教案,计算机《数制与编码进制转换》公开课教案.doc

    <计算机应用基础>教案 新田县职业中学 蒋玲 PAGE PAGE 7 数制与编码--进制转换 [学情分析]本课内容是在学生已经学习了计算机发展与应用.计算机系统的组成等知识的基础上进行,已 ...

  3. 计算机教育的进制转换,计算机数制及编码进制转换公开课教学教育资料.doc

    计算机数制及编码进制转换公开课教学教育资料.doc 数制与编码进制转换[学情分析]本课内容是在学生已经学习了计算机发展与应用.计算机系统的组成等知识的基础上进行,已经初步知道了人与计算机进行信息交换通 ...

  4. 10进制转换16进制补足0_信息技术教师资格必考内容——进制换算(一)

    前两天给大家整理了信息技术教师资格笔试科目三的必考内容,戳蓝字回顾弄懂这些,信息技术教师资格笔试提高30分!信息技术教师资格笔试--这道20分的题居然这么简单!有小伙伴问还有哪些必考内容进制换算也是必 ...

  5. javascript进制转换_《算法笔记》3.5小节——入门模拟-gt;进制转换

    @[TOC] # Contest100000579 - <算法笔记>3.5小节--入门模拟->进制转换 ## 例题 ### PATB1022 PTA | 程序设计类实验辅助教学平台 ...

  6. JSK-127 进制转换【进制】

    进制转换 相信你知道2进制,16进制吧?是否听说过7进制呢?或者9进制? 10进制转2进制是挺简单的,那么转其他进制呢? 没错,右侧的代码实现10进制数到任意进制(2~9)的转换,试试修改吧- 修改后 ...

  7. 【C语言】变量和常量、数据类型、进制转换、数据存储

    目录 1. 变量 1.1 变量的分类 1.1.1 局部变量 1.1.2 全局变量 1.2 变量的使用 1.3 变量的作用域和生命周期 1.3.1 作用域 1.3.2 生命周期 2. 常量 2.1 字面 ...

  8. 进制转换(进制转换)

    进制转换 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. 计算机二进制转化教案及ppt,计算机《数制与编码-进制转换》公开课教案.doc

    文档介绍: 计算机<数制与编码-进制转换>公开课教案数制与编码--进制转换[学情分析]本课内容是在学生已经学****了计算机发展与应用.计算机系统的组成等知识的基础上进行,已经初步知道了人 ...

  10. 计算机的进制单位,计算机存储单位和进制转换

    <计算机存储单位和进制转换>由会员分享,可在线阅读,更多相关<计算机存储单位和进制转换(7页珍藏版)>请在人人文库网上搜索. 1.C语言发展历史,CPU指令系统,由0.1序列构 ...

最新文章

  1. 微服务开源项目ServiceComb 毕业成为Apache顶级项目
  2. centos 7.3 开放端口并对外开放
  3. HDU 3397 Sequence operation
  4. [bzoj 2555]Substring
  5. underscorejs-groupBy学习
  6. 【C语言进阶深度学习记录】十一 C语言中enum,sizeof,typedef分析
  7. html5网页制作图文混排,03第3章制作图文混排网页.docx
  8. Topology and Geometry in OpenCascade-Face
  9. 计算机技术Control,聚变控制计算机 (Fusion Control Computer)
  10. zabbix应用之discovery批量添加主机并实现自定义主机名
  11. 微信小游戏 H5 排行榜源码
  12. 自我介绍及阅读与思考及未来的期望
  13. matlab数据导出wps,怎么把金山WPS表格的数据导入MATLAB/
  14. CSDN 写文章报错:标题含有非法字符,请修改的解决方法
  15. day08---(05)课程大纲-章节和小节列表功能(接口)
  16. 如何实现会议异地实时连线直播
  17. Java基础学习总结(149)——日志打印是一门技术
  18. abaqus的python安装文件在哪_python - 在ABAQUS 6.14 python环境中安装熊猫 - 堆栈内存溢出...
  19. 贵州大学计算机类是211吗,贵州大学排名,唯一一所211排名一百以后,本科一批只有两所...
  20. position常用属性值

热门文章

  1. numpy - np.asarray
  2. 经典视觉SLAM框架
  3. Mycat 分布式事务的实现
  4. 博文视点大讲堂第40期第一讲:美国TOP60名校逐一点评 圆满结束
  5. It’s Android Time
  6. 13.1Question Answering 问答系统意境级讲解
  7. Hadoop-RPC底层实现与解析
  8. Python面向对象中的多态与静态语言(C++,Java)的区别
  9. java下载配置步骤_Java环境构建-JDK下载,安装和配置步骤
  10. Ubuntu-vim 命令