输入一个二进制表示的正整数,转换成十进制输出

2023-10-31

我们想一想咋实现这个算法:

input:

输入一个二进制字符串,不能是其他类型的字符,只能为0和1,所以在这里要做出限制。

略去非0和1的字符后,把二进制字符串逐个输入进行计算。

二进制转化为十进制方法为:例子:110   0*2+1*2*2+1*2*2*2

output:输出一个十进制数即可

如下为具体的c++代码:

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
    int dec = 0;
    char ch;
    do {
        cin.get(ch); //只可以输入一个字符,但是你输入一串0,1字符也可以因为它一次只会读取一个字符
    } while (ch != '0'&&ch != '1'); //这里其实是对非0,1字符进行过滤
    do {
        dec += ch - '0';//一开始看到这里很疑惑后面想清楚了其实就是c++认识的数据类型的数都是先将其转化为ASCII码值后才进行运算的。
        cin.get(ch);
        if (ch == '0' || ch == '1')
            dec *= 2;

    } while (ch == '0' || ch == '1');
    cout << dec << endl;
        

    system("pause");
    return 0;
}

要提醒的是比如说你要计算10011的值你不能顺序输入你应该是输入11001把其反过来输入,这个是先处理低位数的

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

输入一个二进制表示的正整数,转换成十进制输出 的相关文章

  • NHibernate同时将两列作为复合键和外键

    首先 我在网上和这里进行了彻底的搜索 但没有找到解决手头任务的明确解决方案 如果我的搜索不够准确并且这个答案已经发布 我深表歉意 问题 我有一张桌子 该表必须在两个字段上有一个主键 并且其他字段包含一些数据 作为主键的两个字段也必须是外键
  • C# CreatePipe() -> 受保护的内存错误

    我尝试使用 C 创建管道 代码非常简单 但是当行与CreatePipe 调用被执行我得到一个System AccessViolationException并出现以下错误消息 尝试读取或写入受保护的内存 这通常表明其他内存已损坏 这是我的表单
  • 哪种本机 dotNet 数据类型最适合传递 SQL Server HierarchyId 值?

    具体来说 我们有一个接受 HierarchyId 作为参数的 SQL Server 存储过程 并且通常我们的存储过程上有一个 SOAP 层 允许通过 SOAP 调用它们 SOAP 服务是使用 C 方法上的 WebMethod 属性来实现的
  • 如何在 RestSharp 中使用 PUT?

    我想使用 PUT 但我只能找到如何使用 POST 的示例 我要发送的json数据是使用这个cURL命令发送的curl i H Content Type application json X PUT d status 1 http 192 1
  • 无法使用Boost.process

    我下载并打包了 1 54 0 版本的 Boost 库 我做了类似回答这个问题的一切 如何在 Visual Studio 2010 中使用 Boost https stackoverflow com questions 2629421 how
  • 将函数模板传递给其他函数

    假设我有一个函数可以对任意容器类型 C 11 执行某些操作 template
  • Qt:不完整类型和前向声明的使用无效

    我有一些误解 A h ifndef A H define A H include B h class A public B Q OBJECT public A endif A cpp include A h A A B ui gt blan
  • 基本 WinForm KeyDown 事件处理

    我正在使用 WinForms 我已经为KeyDown主窗体的事件 从而调用按钮的Click事件处理程序 The Click调用的事件处理程序取决于按下的特定键 如果用户单击该按钮而不是使用该键 然后随后尝试使用该键 则该键 例如向下箭头 将
  • 在 C# 中使用正则表达式重复模式

    我有一串话 词黑暗王辉光我们结束你好再见低翼 我需要找到第一个单词的最后一个字母与以下单词的第一个字母匹配的单词 例如 worD Dark 我写了一个正则表达式 b w w W 1 w b 目前它成功找到连续 2 个单词 Regex Mat
  • Facebook C# SDK 从 V5 迁移到 V6

    我正在尝试从 SDK 的 V5 3 2 迁移到 V6 我有一个 ASP NET 4 0 Canvas 应用程序 我注意到现在不再有 facebook web dll 我以前使用过 并找到了以下信息 gt 删除 Facebook Web dl
  • 关于使用 Botframework v4 更改为新 LUIS 密钥的问题

    我在 Azure 中下载了 C 模板 它会自动创建并设置 LUIS 应用程序 但现在 LUIS 达到 1000 次调用并且现已过期 我使用创建了一个新密钥本指南 https learn microsoft com en us azure c
  • cudaMalloc使用向量>进行管理 > C++ - NVIDIA CUDA

    我正在通过 NVIDIA GeForce GT 650M GPU 为我创建的模拟实现多线程 为了确保一切正常工作 我创建了一些辅助代码来测试一切是否正常 在某一时刻 我需要更新变量向量 它们都可以单独更新 这是它的要点 device int
  • 使用 Lambda 表达式从字段名称中选择不同的字段

    我需要从数据库表中获取两个字段 使用 linq to sql 检索 一个字段是日期时间 并且是固定字段 另一个字段始终是十进制 但该字段可以不同 该表保存的货币数据每天以不同的货币处理两次 因此可能具有 AM USD PM USD AM E
  • 如何在C(Linux utf8终端)中打印“盒子抽屉”Unicode字符?

    我正在尝试显示 方框图范围 2500 257F 中的 Unicode 字符 它应该是标准 utf8 Unicode 标准 版本 6 2 我根本做不到 我首先尝试使用旧的 ASCII 字符 但 Linux 终端以 utf8 显示 并且没有显示
  • 将 CollectionBase 转换为 List 或可用于 Linq 的数据类型

    我正在使用 Aspose 单元格来操作 Excel 电子表格 API 中的类型之一是电子表格中的图片集合 它派生自 CollectionBase 请参阅此链接 http www aspose com documentation net co
  • 如何反转无符号整数的 4 个字节? [复制]

    这个问题在这里已经有答案了 我试图通过使用 和 以及按位 AND 和 OR 和 来反转无符号整数 但不知道如何执行此操作 我已经拥有的 int main int argc char argv unsigned int getal scanf
  • 使用boost asio的线程池

    我正在尝试使用 boost asio 创建一个有限的线程池类 但我陷入了困境 有人可以帮助我吗 唯一的问题是我应该减少计数器的地方 代码无法按预期工作 问题是我不知道我的线程何时完成执行以及我如何知道它已返回池 include
  • 将 TableCell 文本转换为超链接

    我正在将 sql 查询中的数据提取到页面后面的 cs 代码中的 asp 表中 TableCell tCell1 new TableCell tCell1 Text myDataRow tid ToString 我想将其转换为超链接 我怎样才
  • 当我想要发布项目时:“指定的路径、文件名或两者都太长”

    当我想运行或发布网络项目时 我收到此错误 严重性代码 说明 项目文件行抑制状态 错误 无法评估项目元数据 FullPath 项目元数据 FullPath 无法应用于路径 jquery ui 1 10 3 custom development
  • 在c#中搜索支持rar格式的压缩库

    我想在我的应用程序中添加功能来解压缩 并可选择压缩 各种格式的文件 我有支持 zip gzip 7zip 和 bzip2 的库 但还是没有找到支持rar的库 我知道 rar 是商业的 但也许有一些 net 库可用于解压缩 rar s 最好是

随机推荐