进制转换

#include <iostream>
#include <atlstr.h>
using namespace std;
//transform  
const char tab[] = "0123456789ABCDEF";
string  trans(string input,int bytes);

//达到的效果是实现数字进制的转化,具体是输入一个十进制数字,输出具有需要字节数的
//十六进制(若位数不够,则能自动补齐),结果如下

CString  Strhex(CString DesStr,int bytes);

/*int main(int argc, char const *argv[])
{
	
	CString output=trans("253",1);
	cout<<output<<endl;
	system("pause");
	return 0;
}*/

string  trans(string input,int bytes){
	int input_temp=stoi(input);
	cout<<input_temp<<endl;
	int m=2*bytes;//位数
	int max=1<<8*bytes;//能表示的最大数值
	// cout<<max<<endl;
	if (input_temp<0||input_temp>=max)return "error_data";//判断input是否符合要求
	string output=string(m--,'0');
	while(input_temp){
		output[m--]=tab[input_temp%16];
		input_temp/=16;
	}
	return output;
}

整理出的链接如下
cmd markdown源代码

进制转换(初稿)

标签: 进制


目的

实现进制之间的转换

具体要求

  1. 实现各种进制之间的转换
  1. 输出结果有字节数要求(即位数不够时,需要在高位补0)
  2. 判断输入是否超过要求字节数所能表示的范围

基础知识

按权相加法(m进制转换为十进制)

m进制数从低位到高位(即从右往左)计算,第0位的权值是m的0次方,第1位的权值是m的1次方,第2位的权值是m的2次方,依次递增下去,把最后的结果相加的值就是十进制的值了。
公式如下:

\[result=a_0{m^0}+a_1{m^1}+a_2{m^2}+\dots+a_x{m^x} \]

\(a_0,a_1,a_2,a_x\)分别表示m进制的第\(0,1,2,x\)位的数值
\(m_0,m_1,m_x\)分别表示m进制对应于第\(0,1,2,x\)位的权值
\(result\)表示转换结果(十进制)

除数取余法(十进制转换为m进制)

对于整数部分,用被除数反复除以m,除第一次外,每次除以m均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。
对于小数部分,采用连续乘以基数m,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

接口(10->16)

string  trans(string input,int bytes)

input代表输入的十进制数字
bytes代表需要输出的字节数要求
该函数返回的是要求字节数的十六进制

具体实现

string  trans(string input,int bytes)
{
	int input_temp=stoi(input);
	int m=2*bytes;//位数
	int max=1<<8*bytes;//能表示的最大数值
	if (input_temp<0||input_temp>=max)return "error_data";//判断input是否符合要求
	string output=string(m--,'0');
	//主要用到除16取余法
	while(input_temp){
		output[m--]=tab[input_temp%16];
		input_temp/=16;
	}
	return output;
}

参考文献

二、八、十、十六进制转换(图解篇)

待办事项

总结

</tr>
尚待改进 意见

基础知识内容中 文字过多堆砌,影响阅读

语言不够简练明了

代码不够精炼

整体逻辑,效果不够理想

流程图效果不佳

常看专业文档-->加强整体排版,规范用词用图(最好是图文交叉进行.文少图多)

看hihocoder的提示-->学会用伪代码写

看逻辑方面的书籍-->了解和增强逻辑结构

用专业的图形编辑器-->暂时用ProcessOn

链接 [hihocoder](http://hihocoder.com/) [ProcessOn](https://www.processon.com/)

给个赞吧

posted @ 2016-08-28 08:43  jiangge3  阅读(160)  评论(0)    收藏  举报