C++进制转换

转自:http://blog.csdn.net/xiaofei2010/article/details/7434737

十进制转二进制:

[cpp] view
plain
copyprint?

  1. //十进制转二进制  
  2. #include<iostream>  
  3. using namespace std;  
  4.   
  5. void printbinary(const unsigned int val)  
  6. {  
  7.     for(int i = 16; i >= 0; i--)  
  8.     {  
  9.         if(val & (1 << i))  
  10.             cout << "1";  
  11.         else  
  12.             cout << "0";  
  13.     }  
  14. }  
  15.   
  16. int main()  
  17. {  
  18.     printbinary(1024);  
  19.     return 0;  
  20. }  

十进制转八进制

[cpp] view
plain
copyprint?

  1. //十进制转八进制  
  2. #include <iostream>  
  3. #include <vector>  
  4. using namespace std;  
  5.   
  6. int main()  
  7. {  
  8.     cout<<"input a number:"<<endl;  
  9.     int d;  
  10.     vector<int> vec;  
  11.   
  12.     cin>>d;  
  13.     while (d)  
  14.     {  
  15.         vec.push_back(d%8);  
  16.         d=d/8;  
  17.     }  
  18.   
  19.     cout<<"the result is:"<<endl;  
  20.     for(vector<int>::iterator ip=vec.end()-1;ip>=vec.begin();)  
  21.     {  
  22.         cout<<*ip--;  
  23.     }  
  24.     cout<<endl;  
  25.       
  26.     return 0;  
  27. }  

十进制转任意进制:

[cpp] view
plain
copyprint?

  1. //十进制转换为任意进制的源码  
  2. #include <iostream>  
  3. using namespace std;  
  4.   
  5. int main()  
  6. {  
  7.     long n;  
  8.     int p,c,m=0,s[100];  
  9.     cout<<"输入要转换的数字:"<<endl;  
  10.     cin>>n;  
  11.     cout<<"输入要转换的进制:"<<endl;  
  12.     cin>>p;  
  13.   
  14.     cout<<"("<<n<<")10="<<"(";  
  15.   
  16.     while (n!=0)//数制转换,结果存入数组s[m]  
  17.     {  
  18.         c=n%p;  
  19.         n=n/p;  
  20.         m++;s[m]=c;   //将余数按顺序存入数组s[m]中  
  21.     }  
  22.   
  23.     for(int k=m;k>=1;k--)//输出转换后的序列  
  24.     {  
  25.         if(s[k]>=10) //若为十六进制等则输出相对应的字母  
  26.             cout<<(char)(s[k]+55);  
  27.         else         //否则直接输出数字  
  28.             cout<<s[k];  
  29.     }  
  30.   
  31.     cout<<")"<<p<<endl;  
  32.   
  33.     return 0;  
  34. }  

通过库函数实现八进制、十六进制输出:

[cpp] view
plain
copyprint?

  1. #include <iostream>  
  2. using namespace std;  
  3.   
  4. int main()  
  5. {  
  6.     int test=64;  
  7.     cout<<"DEC:"<<test<<endl;  
  8.     cout<<"OCT:"<<oct<<test<<endl;//八进制  
  9.     cout<<"HEX:"<<hex<<test<<endl;//十六进制  
  10.   
  11.     return 0;  
  12. }  
时间: 2024-09-21 02:07:49

C++进制转换的相关文章

c++-求份C++运算器,需要基本云运算关系运算逻辑运算位运算进制转换功能

问题描述 求份C++运算器,需要基本云运算关系运算逻辑运算位运算进制转换功能 1基本运算功能 主要包括:加.减,乘.除.取余.自增.自减等. 2.关系运算功能 主要包括:大于.大等于.小于.小等于.等于.不等于. 3. 逻辑运算功能 主要包括:与.或.非. 4.位运算功能 主要包括:按位与.按位或.按位异或.按位取反.左移和右移. 5.进制转换功能 主要包括:包括十进制转其他进制.二进制转其他进制 解决方案 我这个别处找的代码,不是我写的.. 解决方案二: http://download.csd

php 实现进制转换(二进制、八进制、十六进制)互相转换实现代码

十进制转换为二进制.八进制.十六进制 从十进制向其它进制转换,用的是就用该数字不断除以要转换的进制数,读取余数.连接一起就可以了. 复制代码 代码如下: <?php /** *十进制转二进制.八进制.十六进制 不足位数前面补零* * * @param array $datalist 传入数据array(100,123,130) * @param int $bin 转换的进制可以是:2,8,16 * @return array 返回数据 array() 返回没有数据转换的格式 * @copyrig

浅议Oracle中的进制转换

oracle|转换 作者: Eygle 出处: BLOG 进制转换是开发中经常需要用到的,本文简单介绍几种常用的进制转化方法. 一 16进制转换为10进制 可以通过to_number函数实现 SQL> select to_number('19f','xxx') from dual; TO_NUMBER('19F','XXX') ---------------------- 415 SQL> select to_number('f','xx') from dual; TO_NUMBER('F',

SQL SERVER 16进制与10进制转换

最近工控项目中遇到的16进制与10进制转换,在.NET中比较容易实现,在SQLSERVER中发现没有直接 的转换,尤其是出现超出范围的long负数,即无符号64位整数在sqlserver中的存储.网上找的很多方法 只适用于32位整数和64位正整数,64位负数无法实现,现将使用的转换方法记录下来. 利用SQLSERVER中的varbinary来间接实现. 16进制字符串转10进制bigint(0-FFFFFFFFFFFFFFFF): 由于二进制比较容易转换为bigint 所以先将字符串转为二进制v

Delphi实现把10进制转换成16进制的函数进制转化

  delphi中有直接把10进制转换成16进制的函数: function IntToHex(Value: Integer; Digits: Integer): string; overload;  function IntToHex(Value: Int64; Digits: Integer): string; overload; unit uConversion; interface uses SysUtils,Math; type TConversion = class public //

Javascript进制转换实例

  本文实例讲述了Javascript进制转换的方法.分享给大家供大家参考.具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

利用进制转换压缩数字函数分享

 本文主要介绍了进制转换函数,用于压缩数字,比如Date.now()这样的长数字,用62进制表示,就更短,大家参考使用吧 代码如下: function zipNum(num, radix){     if(!zipNum.zip){         zipNum.zip = function(inputNum){             if(inputNum > 35){//用大写字母表示36-61                 return String.fromCharCode('A'.

JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算

JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都是很痛苦的事情,但是程序之路这么长,你必须精通的不能再精通一门语言才行(有点说大了哈),但是最起码你要如鱼得水吧,我准备的资料有: JAVA编程思想 深入浅出JAVA 黑马,传智,慕课,极客学院等-的视频 Google搜索 我们既然是重新学一遍,那我们尽量就是用记事本去敲代码好了,这里我用notep

数据结构 栈的基本操作 进制转换 为什么运行后会陷入死循环

问题描述 数据结构 栈的基本操作 进制转换 为什么运行后会陷入死循环 ```#include #include #include #define OK 1 #define ERROR -1 #define OVERFLOW -1 #define ENDFLAG 0 #define STACK_INIT_SIZE 100//初始分配量 #define STACKINCREMENT 10//增量 typedef int Status; typedef int SElemType; typedef s

进制转换-java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制

问题描述 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制 java怎么把一个数组里面的16进制值转换成8进制,我想先把16进制转成2进制再转8进制,但是老是运行出错.大神们能不能给个小例子解释一下,谢谢 解决方案 http://blog.csdn.net/vanezuo/article/details/6556768 解决方案二: 使用函数啊,你找一下,Java有相应的函数能做到 解决方案三: 如果你的程序出错,你贴出你的程序才知道. 也可以参考我给你的