C++进制转换(十进制转二进制、八进制、随意进制)

十进制转二进制:

//十进制转二进制
#include<iostream>
using namespace std;

void printbinary(const unsigned int val)
{
	for(int i = 16; i >= 0; i--)
	{
		if(val & (1 << i))
			cout << "1";
		else
			cout << "0";
	}
}

int main()
{
	printbinary(1024);
	return 0;
}

十进制转八进制

//十进制转八进制
#include <iostream>
#include <vector>
using namespace std;

int main()
{
	cout<<"input a number:"<<endl;
	int d;
	vector<int> vec;

	cin>>d;
	while (d)
	{
		vec.push_back(d%8);
		d=d/8;
	}

	cout<<"the result is:"<<endl;
	for(vector<int>::iterator ip=vec.end()-1;ip>=vec.begin();)
	{
		cout<<*ip--;
	}
	cout<<endl;

	return 0;
}

十进制转随意进制:

//十进制转换为随意进制的源代码
#include <iostream>
using namespace std;

int main()
{
	long n;
	int p,c,m=0,s[100];
	cout<<"输入要转换的数字:"<<endl;
	cin>>n;
	cout<<"输入要转换的进制:"<<endl;
	cin>>p;

	cout<<"("<<n<<")10="<<"(";

	while (n!=0)//数制转换,结果存入数组s[m]
	{
		c=n%p;
		n=n/p;
		m++;s[m]=c;   //将余数按顺序存入数组s[m]中
	}

	for(int k=m;k>=1;k--)//输出转换后的序列
	{
		if(s[k]>=10) //若为十六进制等则输出相相应的字母
			cout<<(char)(s[k]+55);
		else         //否则直接输出数字
			cout<<s[k];
	}

	cout<<")"<<p<<endl;

	return 0;
}

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

#include <iostream>
using namespace std;

int main()
{
	int test=64;
	cout<<"DEC:"<<test<<endl;
	cout<<"OCT:"<<oct<<test<<endl;//八进制
	cout<<"HEX:"<<hex<<test<<endl;//十六进制

	return 0;
}









				
时间: 2024-11-06 13:54:30

C++进制转换(十进制转二进制、八进制、随意进制)的相关文章

Java 10进制转2、8、16进制转换 / 2、8、16进制转10进制转换

public static void main(String[] args) { int i = 10; System.out.println("***********10进制转换2进制.8进制.16进制************"); System.out.println(Integer.toBinaryString(i)); // 10转换2进制 System.out.println(Integer.toOctalString(i)); // 10转换8进制 System.out.p

NOJ 1012 进制转换(十进制转换成任意进制)

题目: 进制转换 时间限制(普通/Java) : 1000 MS/ 3000 MS          运行内存限制 : 65536 KByte总提交 : 1819            测试通过 : 525  题目描述 将一个十进制数N转换成R进制数输出,2≤R≤16,R≠10. 输入 多行.第一行指出以下一共有多少组数据,后续每行包含两个整数N和R,以空格分隔,-100000≤N≤100000,2≤R≤16,R≠10. 输出 多行.每行给出转换后的R进制数. 样例输入 37 223 12-4 

sql 进制转换,支持93内的进制相互转换

功能:实现在SQL内进制的互相转换,支持从2 - 93进制内的转换,若需要支持其他字符,可以自定义@ym变量实现扩充 1 -- ============================================= 2 -- Author: bwch 3 -- Create date: 2014年9月30日10:32:47 4 -- Description: 把一个数字转换成指定进制,最大支持93进制,也可在Function内扩充@ym实现其他的转换 5 -- ===============

SQL SERVER 自定义函数 整数转成指定长度的16进制 转换成指定长度的16进制 不足补0

最近做项目扩展的时候,遇到问题就是将整型转换成指定长度的16进制 刚开始就是直接使用 cast(12 as varbinary(4))但是发现这个不能解决我的问题 所以就上网搜了一下,然后改了改,下面就是函数: 1 Create Function IntToHexLength(@Num int,@HxLength int) 2 returns varchar(16) 3 as 4 begin 5 declare @Mods int,@res varchar(16),@Length int 6 s

使用JAVA完成十进制到二进制八进制十六进制的转换

/* 十六进制的转换 要求: 1.从键盘输入数据(有输入提示) 2.用自定义方法 增加: 对输入的数,进行8进制和2进制的转换. */ import java.util.Scanner; public class ArrayTest{ public static void main(String[] args){ System.out.print("请输入要转换为16进制的数字:"); Scanner scan=new Scanner(System.in); int num = sca

九度OJ题目1080:进制转换(java)使用BigInteger进行进制转换

题目描述: 将M进制的数X转换为N进制的数输出. 输入: 输入的第一行包括两个整数:M和N(2<=M,N<=36). 下面的一行输入一个数X,X是M进制的数,现在要求你将M进制的数X转换成N进制的数输出. 输出: 输出X的N进制表示的数. 样例输入: 16 10 F 样例输出: 15 提示: 输入时字母部分为大写,输出时为小写,并且有大数据. package a; import java.math.BigInteger; import java.util.*; public class Mai

用堆栈实现数制转换(十进制转二进制)

    /*************************************stack.h********************************/     #define MAXSIZE 32     #define OVERFLOW -1     #define ERROR -2     #define DATATYPE int          typedef enum{FALSE, TRUE} BOOL;          typedef struct     {    

计算机常用进制转换

进制转换;十进制转二进制公式倒除法,余数逆序二进制转+进制公式:当前的数字(0.1)乘以2的位数次方,在相加1001 -> 1x2^3+0x2^2+0x2^1+1x2^0八进制转二进制公式: [一转三位]八进制的一位相当于二进制的三位,计算时按十进制转换,不足三位高位补0二进制转八进制公式: [三位一取]从低位开始,每三位得到一个八进制数字,最后高位不足则补0十六进制转二进制公式:[一转四位]十六进制的一位相当于二进制的四位,计算时按t进制转换,不足四位高位补0二进制转十六进制公式: [四位一取

原理之一,进制转换

原理之一,进制转换 日常生活中采用个数字都是十进制,而计算机采用的是运算更简单.易实现且可靠,为逻辑设计提供了有力途经的二进制,除此之外还有八进制和十六进制作为二进制的缩写. 进制:逢N进一,N是每种进位计数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二,包含的数字(0.1) 八进制:逢八进一,借八当一,包含(0.1.2.3.4.5.6.7) 十六进制:逢十六当一,以一当十六,包含(0.1.2.3.4.5.6.7.8.9.10(A).11(B).12(C).13(D).14(E

黑马程序员------进制转换

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 在java中数字的表现形式一般有二进制,八进制,十进制,十六进制等,在平时的编程中我们可以通过java提供的API函数方便的实现各个进制间的转换,如:Integer.toHexString(int i)--十进制转十六进制:Integer