当前位置: 首页 > news >正文

北京完美建设有限公司网站工信部网站备案方法

北京完美建设有限公司网站,工信部网站备案方法,手机营销型网站制作,物流网站平台建设2020/01/01 实现原理参考代码测试样例其他补充后记交流 实现原理 本程序借助10进制数为中介数据,实现任意进制数之间的相互转换(2-36进制范围) 需要注意的是,数值范围不可超出 long long int 所表示的范围,即所输入需…

2020/01/01

  • 实现原理
  • 参考代码
  • 测试样例
  • 其他补充
  • 后记交流




实现原理

本程序借助10进制数为中介数据,实现任意进制数之间的相互转换(2-36进制范围)
需要注意的是,数值范围不可超出 long long int 所表示的范围,即所输入需要为正数,且要小于 (2^63) - 1 .(64位处理器计算机)
若需要负值数据,只需要处理第一位的符号位即可.
还有一点,本程序的字母表示全部采用了大写方式,如需要小写字母形式可自行修改.
其实也简单,大小写ASCLL码数值相差32,直接加减即可转换.eg: 'a' - 32 = 'A'.


参考代码

// 进制转换.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include "pch.h"
#include <iostream>
#include <string>
#include <cmath>
using namespace std;class BaseConversion {
private:const string character = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//从from进制数source转为to进制数result;int from;int to;string source;string result;
public:void init(int from = 10, int to = 2, string source = "1024") {this->from = from;this->to = to;this->source = source;}void computing();int pickIndexNumber(char ch) {if (character.find(ch)!=string::npos) {return character.find(ch);}else {cout << "待转换的数据来源不合法,请检查校正后重新输入!/n(提示:不可使用负数符号开头)" << endl;}}string getResult() {return result;}
};
void BaseConversion::computing() {int ten = 10;long long num = 0;//转为10进制后的数值结果if (from > 1 && from < 37) {for (int i = 0; i < source.length(); ++i) {num += pickIndexNumber(source[i])*pow(from, source.length() - i - 1);}cout << "十进制数表示结果为:" << num << endl;}else {cout << "输入进制有误,请确保进制数范围处于[2,36]范围!" << endl;}if (num < to) {result += character[num];}else {while (num >= to) {result = character[num%to] + result;//如此连接处理则不需要对结果做逆序处理;num /= to;}result = character[num] + result;//num<to的时候,作为个位所在数值;}
}int main()
{std::ios::sync_with_stdio(false);std::cin.tie(0);int f, t;string s;std::cout << "请输入从from进制转换到to进制的数值source,依次输入from、to、source:\n(提示:字母请使用大写形式,且不可使用负数符号开头)" << endl;while(true) {cin >> f >> t >> s;BaseConversion bc;bc.init(f, t, s);bc.computing();cout << s << "(" << f << ") ----> " << bc.getResult() << "(" << t << ")" << endl;}return 0;
}

测试样例


鼠标置于此处可直接预览结果


测试样例2



其他补充

进制转换问题要灵活运用,很多时候并不需要借助10进制作为中介.
抛砖引玉:
16进制转2进制,直接使用四位串流实现快速转换,即任意一个16进制的位上的数值可转位对应4位二进制数值,采用“8421”快速转换.
同理,32进制则使用五位二进制串流即可,“16,8,4,2,1”.
反过来:
二进制数转十六进制数,可直接采用4位二进制化1位十六进制实现快速转换.
本程序为了便于理解原理和编码实现,“符合人性思维”,权衡之下才用了十进制数作为中介对象.
其实是可以尝试直接转换的,只是很难直接理解、思维可能会不到位.具体内容下次更新时补充.
最后之所以写这么一个进制转换问题,是因为自己即将总结密码编码学知识了.
先为异或运算(相异为真,C++即1)打个前站,预热一下.


后记交流

以上代码和文字纯属手工码字,如有错误欢迎指出、以便我改正/改进代码.
如需交流,请联系QQ/QQ邮箱:2636105163
也可申请加入兴趣群聊,956349248,各种福利小彩蛋详见群资料介绍界面.
2020/01/01 22:44
Franklin
http://www.yayakq.cn/news/617900/

相关文章:

  • 网站的宣传推广wordpress怎么防止攻击
  • 服装企业网站源码一个静态网站多少钱
  • 英文企业网站带后台有数据库动漫制作专业在广西哪所院校最强
  • 网站制作多少钱公司自己的网站怎么做网盘
  • 做当地门户网站多少钱三元里网站建设
  • 如何在阿里云上建设网站霸州放心的网络建站
  • 如何申请个人网站域名石河子做网站
  • 网站宽度 像素做美食网站的图片素材
  • 小米网站设计wordpress简约主题下载
  • 丹东手机网站宿迁建设局网站拆除备案
  • 举报网站建设情况 汇报立陶宛与俄罗斯最新消息
  • 网站建设公司赚钱吗wordpress淘客主题
  • 哪些企业会考虑做网站商标设计软件免费版
  • 王者荣耀网站开发目的网站模版 拓
  • 湖北建设部网站官网自己做购物网站需要什么
  • 广东做网站的公司昆明网站建站公司
  • 林州网站建设哪家专业咨询行业网站开发
  • 找网站最专业的网站建设公司哪家好
  • 我要招人在哪个网站招长春网站建设的公司
  • 手机网站的静态页面公司网站开发人员离职后修改公司网站
  • 无锡做网站f7wl杭州网页设计师
  • 怎么做网站推广世界杯网站关键词堆砌
  • 网站seo其应用17173游戏交易平台官网
  • 网站建设合同需注意什么百度打开
  • 个人网站建设分几个步走亦庄附近的网站建设公司
  • 上海市建设注册管理网站360建筑工程网
  • 深圳专业商城网站设计制作好的网页怎么变成网站
  • 网站建设费的税率青岛网站建设哪家公司好
  • 怎么利用wordpress管理站点梵克雅宝耳钉
  • 律师网站专业设计专做企业网站的