关闭

十进制转十六进制 代码

标签: stdstringstringhexinputc
13264人阅读 评论(0) 收藏 举报

 

5621转换为16进制数的方法是“除16取余”方法, 
5621/16=商351余5,16进制最后一位为5 
351/16=商21余15,16进制右边第二位为F 
21/16=商1余5,16进制右边第三位为5 
1/16=商0余1,16进制数右边第四为为1 
商0就不继续除了  
最后的结果为15F5
#include <iostream>
#include <string>

using namespace std;

// 整数转换成字符串
string  int2str( int  num);

 
int main(int argc, char* argv[])
{
	// 十进制转十六进制
	int num = 0;
	cout<<"Please Input A Num "<<endl;
	cin>>num;
	string str_num;
	while(num / 16 != 0)
	{
		int a = num / 16;
		int mod_a = num % 16;
		cout<<"mod_a = "<<mod_a<<endl;
		string s;
		switch(mod_a)
		{
		case 10:
			s = 'A';
			break;
		case 11:
			s = 'B';
			break;
		case 12:
			s = 'C';
			break;
		case 13:
			s = 'D';
			break;
		case 14:
			s = 'E';
			break;
		case 15:
			s = 'F';
			break;
		default:
			s = int2str(mod_a);
			break;
		}
		str_num = s + str_num;
		num = a;
	}
	if(num % 16 != 0)
	{
		int last_a = num % 16;
		str_num = int2str(last_a) + str_num;
	}

	cout<<"The Hex Num = "<<str_num<<endl;
	return 0;
}

string  int2str( int  num)
{
	if (num  ==   0 )
		return   " 0 " ;
	string  str  =   "" ;
	int  num_  =  num  >   0   ?  num :  - 1   *  num;
	while (num_)
	{
		str  =  ( char )(num_  %   10   +   48 )  +  str;
		num_  /=   10 ;
	} 
	if (num  <   0 )
		str  =   " - "   +  str;
	return  str;
}


 

0
0
查看评论

Lua 中 number 转换各种进制,以及string串转number

本文实现了Lua 中 number 转换各种进制,以及各种进制 string 串转 number。实现思路: 1. 实现一个 table:_convertTable, 存下数字和字符串之间的对应关系 2. 不同进制之间的转换: - 二进制:采用0和1表示,满二进一 - 八进制...
  • David_Dai_1108
  • David_Dai_1108
  • 2017-05-11 23:23
  • 5354

基础练习 十进制转十六进制

问题描述   十六进制数是在程序设计时经常要使用到的一种整数的表示方式。它有0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F共16个符号,分别表示十进制数的0至15。十六进制的计数方法是满16进1,所以十进制数16在十六进制中是10,而十进制的17在十六进制中是11,以此类推,十...
  • qq_36238595
  • qq_36238595
  • 2016-12-12 22:56
  • 776

编写程序,将一个十进制正整数转换成十六进制数

//编写程序,将一个十进制正整数转换成十六进制数 /* 程序分析: 1.如果在0-9 直接输出0-9 2.写一个对应函数 用循环代替  3. 中间遇到问题,怎么判断一个输入数字的长度 设置一个while 循环,循环条件是n>=10;然后不断的除以10  ...
  • grace_fang
  • grace_fang
  • 2017-03-14 17:21
  • 3086

redis Error: Connection reset by peer 解决

我的redis版本:3.2.8. redis安装教程,参考官方网站: https://redis.io/download $ wget http://download.redis.io/releases/redis-3.2.8.tar.gz $ tar xzf redis-3.2.8....
  • u014182411
  • u014182411
  • 2017-05-23 11:15
  • 8169

c语言将十进制数转换为16进制的函数

有3种方式实现,其中两种是使用系统函数,另一种是直接自己编写。 使用系统函数实现要加入#include stdlib.h>,自己编写则不需要这个头文件。 下面的代码就是3种方式的实现,包括2位的整数和任意整数(2的31次方以内)都可以。可自己选择需要的实现方式。 利用系统函数有 ...
  • csu_yang
  • csu_yang
  • 2016-03-11 08:58
  • 23086

python常用的十进制、16进制、字符串、字节串之间的转换(长期更新帖)

进行协议解析时,总是会遇到各种各样的数据转换的问题,这里详细列举了整数之间的进制转换,以及整数、字符串、字节串三者之间的相互转换。当然仅仅是抛砖引玉,有更好更简单的方法,欢迎欢迎
  • crylearner
  • crylearner
  • 2014-08-27 00:19
  • 171221

十进制转换成十六进制的问题

如果是整形转换成16进制比较简单,如果是很大的一个整数呢?  比如 123456789123456789. #include #include #include #define HEX 16 char s[] = "0123456789ABCDEF";...
  • xinpo66
  • xinpo66
  • 2014-03-04 23:50
  • 1286

Qt 十制转化成十六进制

十进制int 转化成十六进制char[]void dec2hex(int x,char s[]) { int i,j,c; for(i=-1;x>0;i) { s[++i]=x%16; x/=16; } for(j=i;j>=0;j--) { if(s[j...
  • fandq1223
  • fandq1223
  • 2016-11-30 14:17
  • 3975

【Qt开发】QString与数字类型的转换(不同进制)

把QString转换为 double类型 方法1.QString str="123.45"; double val=str.toDouble(); //val=123.45 方法2.很适合科学计数法形式转换 bool ok; double d; ...
  • LG1259156776
  • LG1259156776
  • 2016-09-17 23:14
  • 3549

Qt 数值进制转换

QString::number(63,16).toUpper()  //"3F" QString::number(63,16)   //“3f” QString QString::number ( long n, int base = 10 ) [st...
  • thinkme2010
  • thinkme2010
  • 2013-06-05 11:08
  • 1182
    个人资料
    • 访问:716753次
    • 积分:8987
    • 等级:
    • 排名:第2506名
    • 原创:182篇
    • 转载:125篇
    • 译文:1篇
    • 评论:109条
    博客专栏
    初识Qt

    文章:43篇

    阅读:147934
    文章分类
    最新评论