编写一个VC++程序把十进制数转化成二进制,八进制,十六进制。

作者&投稿:战菁 (若有异议请与网页底部的电邮联系)
用vc++语言编写程序十进制整数到二进制,八进制,十六进制的转换。要求:进制转换使用一个函数实现。~

供参考……
#include "stdafx.h"
#include "iomanip.h"

void D10to2_8_16(int i,char radix){
char m;
if(i>=radix)D10to2_8_16(i/radix,radix);
if((m=i%radix+'0')>0x39)m+=7;
cout << m;
}

void main(void){
int nDec;
cout << "请输入一个十进制正整数...
" << "nDec=";
cin >> nDec;
cout << "转换为二进制是:";
D10to2_8_16(nDec,2);
cout << endl;
cout << "转换为八进制是:0";
D10to2_8_16(nDec,8);
cout << endl;
cout << "转换为十六进制是:0x";
D10to2_8_16(nDec,16);
cout << endl;
}

#include
void change (int n)
{
int i=n%8;
if(i)
{
change(n/8);
printf("%d",i);
}
}
int main()
{
int x;
scanf("%d",&x);
change(x);
return 0;
}

#include <stdio.h>

#include <stdlib.h>
#include <string.h>
void trans(long m,int base,char *a); // 函数声明
int _tmain(int argc, _TCHAR* argv[])
{
long n;
int radix;
//char b[33];
char a[33];
printf("please input the integer:"); //要转换的十进制数
scanf("%ld",&n);
printf("please input the radix:"); // 进制数,可以为2、8、16
scanf("%d",&radix);

trans(n,radix,a); //调用函数
//for(int i=strlen(b)-1;i>=0;i--)
// printf("%c",*(b+i));
printf("%s",a);
return 0;
}

//只是16进制的转换
void trans(long m,int base,char *a)
{ int r;
char *p=a;

while(m>0)
{ r=m%base;
if(r<10) *p=r+48; //小于10的数转换为数字字符输出
else *p=r+55; //大于10的数转为A B C D E F输出
m=m/base;
p++; }
*p='\0';
}

#include "iostream.h"
void f1(double p,int q) //编辑对实数p的整数部分进制转换的子函数
{
int i,m,n,t=0,a[100];
for(i=0;;i++) //进制转换执行操作循环
{
n=(int)p/q; m=(int)p%q; p=n; a[i]=m; t++;
if(n==0) break; //当n为0时,循环结束
}
for(i=t-1;i>=0;i--) //倒序输出各个模值(m)
{
switch(a[i]) //十六进制转换过程中模值(m)若大于'9',则必须输出相应的大写字母
{case 10: cout<<'A'; break;<br> case 11: cout<<'B'; break;<br> case 12: cout<<'C'; break;<br> case 13: cout<<'D'; break;<br> case 14: cout<<'E'; break;<br> case 15: cout<<'F'; break;<br> default: cout<<a[i]; break; <strong> //若模值(m)不大于'9',则原样输出</strong><br> }
}
}
void f2(double p,int q) //编辑对实数p的小数部分进制转换的子函数
{
int i,t=0,a[100];
double n;
p=p-(int)p; //提取p的小数部分
for(i=0;;i++) //进制转换执行操作循环
{
n=p*q; a[i]=(int)n;
p=n-(int)n;
t++;
if(n-(int)n==0) break; //当n的值等于n的整数部分时,循环结束
}
for(i=0;i<t;i++) //正序输出各个整值((int)n)
{
switch(a[i]) //十六进制转换过程中整值((int)n)若大于'9',则必须输出相应的大写字母
{case 10: cout<<'A'; break;<br> case 11: cout<<'B'; break;<br> case 12: cout<<'C'; break;<br> case 13: cout<<'D'; break;<br> case 14: cout<<'E'; break;<br> case 15: cout<<'F'; break;<br> default: cout<<a[i]; break; <strong> //若整值((int)n)不大于'9',则原样输出<br></strong> }
}
cout<<endl;
}
void main() //主函数
{
double p;
int flag;
for(;;) //循环体
{
cout<<"输入一个要转换的实数p:";
cin>>p;
cout<<"输出转换后的实数:\n";
//转换之后实数的整数部分与小数部分之间用小数点'.'连接
cout<<" 2进制: "; f1(p,2); cout<<'.'; f2(p,2); //执行2进制转换及输出结果
cout<<" 8进制: "; f1(p,8); cout<<'.'; f2(p,8); //执行8进制转换及输出结果
cout<<"16进制: "; f1(p,16); cout<<'.'; f2(p,16); //执行16进制转换及输出结果
cout<<"Continue?('0': exit):"; //提示是否继续进行操作的信息
cin>>flag;
if(flag==0) break; //若flag值为0,循环体结束,跳出程序调试环境
cout<<endl;
}
cout<<endl;
}

这是以前写的一个十进制转换二进制,八进制,十六进制输出的.在VC6中测试通过. 你参考下. #include <stdio.h>/*输出*/
void print(int i,char *s)
{
while(i--)
{
printf("%c",s[i]);
}
printf("\n");
}/*十进制转换八进制*/
void TentoE(int n)
{
int i=0;
char str[10];

while(n>0)
{
str[i]=n%8+'0';
n/=8;
i++;
}
printf("八进制:");
print(i,str);
}/*十进制转换十六进制*/
void TentoHex(int n)
{

int i=0,t;
char str[10];

while(n>0)
{
t=n%16;
if(t>=10)
{
str[i]=t%10+'a';
}
else
str[i]=n%16+'0';
n/=16;
i++;
}
printf("十六进制:");
print(i,str);
}/*十进制转换二进制*/
void TentoB(int n)
{
int i=0;
char str[20]="\0";

while(n>0)
{
str[i]=n%2+'0';
n/=2;
i++;
}
printf("二进制:");
print(i,str);
}
void main()
{
int x;
scanf("%d",&x);
TentoB(x); //转换二进制并输出
TentoE(x); //转换八进制并输出
TentoHex(x); //转换十六进制并输出

}

我学的也是c++ 给你个简单的进制转换的程序#include<iostream.h>
void look(int x)
{ if(x==1)
cout<<"1";
else
{look(x/2);<br> cout<<x%2;<br> }
}
void main()
{ int a=1;
cout<<"decimal"<<'\t'<<"binary"<<'\t'<<"octal"<<'\t'<<"hexadecimal"<<endl;
while(a<=256)
{cout<<dec<<a<<'\t'; look(a);cout<<'\t'<<oct<<a<<'\t'<<hex<<a<<endl;<br> a++;<br> }
}


我写一个VC++程序,怎样让该程序以SYSTEM用户运行?
其实这个都是系统system权限都是相对的,不过可以用CreateService创建服务来实现哈!新建一个空的,名为CreateService 控制台工程,再新建一个CreateService.cpp文件,下面代码粘贴进去。。。include "Windows.h"include "Winsvc.h"include "time.h"include "stdio.h"SERVICE_STATUS m_ServiceStatus;SERVICE_...

我用vc++ 2008写了一个程序,如下图,怎么保存上面图上面的内容到txt文 ...
定义一个结构体 ,成员为你要的,以结构体长度写文件,在读文件,将项目属性改为 静态链接模式 ,release编译。将项目属性改为 静态链接模式 ,release编译。在release中的exe就可以了

如何用vc编写程序
第一篇 为Non-COM程序添加对象模型(2)初始化对象模型 创建一个新的组件实例,调用Load方法来获得一对结果。首先,连接到记事本运行中的拷贝。其次,在记事本窗口中打开一个已存在的文档或创建一个空文档。与记事本相结合,需要夺取主窗体的句柄和覆盖了整个客户端区域的编辑控件的句柄。可以用C++ Find...

用c语言如何编写一个比较两个数大小的程序
如何只是比较大小的话,直接一个判断就ok了。代码如下:include <stdio.h> int main(){ int a=0,b=0;scanf("%d %d",&a,&b);if(a>b)printf("%d > %d\\n",a,b);else if (a<b)printf("%d < %d\\n",a,b);else printf("相等\\n");return 0;} 分析:定义两个变量,然后输入...

我想用VC++6.0编一个交互性绘图程序,求大神帮我解答下,我是小白_百度...
目测,这是一个完整VC6.0工程源代码。要使用这个程序,首先你需要安装一个6.0版本的VC(高版本的需要做工程转换,不是一定成功)。其次,你需要找到扩展名为dsw的文件,用VC6打开它进行编译。(目测你的工程文件为dr.dsw,因为浏览器默认不显示文件扩展名,所以看不到)至于具体的编译调试方法,找一...

怎样使用VC软件编译并运行C语言程序
使用VS2008编译C程序,本文中使用VS2008 professional版本。1.打开VS2008,这就不用多说了吧2.打开了VS2008的主界面,然后选择,文件→新建→项目弹出如图对话框 3、在项目类型中选择VC++→win32 然后在右侧模板中选择win32控制台应用程序,再在下面输入一个名称(项目名称,不用带.C)选择保存位置后...

vc2010怎么编译运行
第四步:编译和运行程序 1. 编译:你可以通过点击工具栏上的“生成”按钮(通常看起来像一个绿色的播放按钮,但带有一个小锤子),或者按F7键来编译你的项目。编译成功后,VC2010会在“输出”窗口中显示成功信息,并生成可执行文件(.exe)。2. 运行:有两种主要方法可以运行你...

如何用VC编写一个计算器程序
switch(getch()){ case 'y':{system("cls");goto loop1;} \/*点击y,清空屏幕,返回标记位置*\/ case 'n':exit(0); \/*点击n,退出程序*\/ default :exit(0); \/*点击其它键,也退出程序*\/ } getch();return 0;} 说明:必须将扩展名设置为c,若是cpp,将无法通过系统的编译。

如何使用vc6.0进行程序开发?
编译的作用是对源程序进行检查,判定程序有无语法的错误。直到没有错误时,编译程序自动把源程序转换为二进制形式的目标程序进行连接处理。经过编译后所得到的二进制目标文件还不能供计算机直接执行。一个程序可能包含若干个源程序文件,而一次编译只能得到与一个源程序文件相对应的目标文件,只是程序的一...

用VC建一个CFormView的单文档程序……
我这个是TreeView的,原理一样,你可以参考,希望能帮助你:CTreeCtrl* m_TreeCtrl;m_TreeCtrl = new CTreeCtrl;m_TreeCtrl->Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER | TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES | ...

莆田市13637644339: 编写一个VC++程序把十进制数转化成二进制,八进制,十六进制. -
蔽民维瑙: #include "iostream.h" void f1(double p,int q) //编辑对实数p的整数部分进制转换的子函数 { int i,m,n,t=0,a[100]; for(i=0;;i++) //进制转换执行操作循环 { n=(int)p/q; m=(int)p%q; p=n; a[i]=m; t++; if(n==0) break; //当n为0时,循环结束 } for(i=t-1;i>=0...

莆田市13637644339: C++编写一个程序,将用户输入的十进制整数转换成任意进制的数 -
蔽民维瑙: 1、首先,定义四个整型变量,保存十进制整数、二进制整数等计算值. 2、给变量i和二进制数赋初值,值为0. 3、接着,输入一个十进制整数. 4、用while语句判断,条件为十进制数是否为零. 5、当十进制数不为零时,对十进制数用2求余,保存在变量d中. 6、十进制数除以2,使数值缩小为原来的二分之一. 7、输出十进制数所对应的二进制数. 8、运行程序,输入任意一个十进制整数,计算机就会输出对应的二进制数.

莆田市13637644339: 用vc++将十进制转化为二进制、八进制、十六进制的程序 -
蔽民维瑙: 用实型表示,整数部分除以R(R进制)取余数,小数部分乘R取整(问题太笼统,没有代码)

莆田市13637644339: 在C++中将一个十进制数转化为任意进制的程序
蔽民维瑙: 源程序如下: #include<iostream>//我这个程序只针对2~16进制的转换,因为最普及 using namespace std; char str[17]={"0123456789ABCDEF"};//为了使程序简化而提前定义将会输出的数字 int main() { int s,t; //s为要输入的十进制数,t为要...

莆田市13637644339: 用visual C++6.0编一个小程序:将一个十进制N转换为一个d(2~9)进制的数?? -
蔽民维瑙: #include void main() { int N, d; int convert[100]; // 存储转化后的 d 进制的数 cout cin>>N; cout cin>>d; cout // 进制转换 int i=0, t; while (N>0) { t=N%d; // 对 d 取余即得 d 进制的末位数 convert[i++]=t; // 存储余数 N=N/d; } // 输出结果(将余数倒叙...

莆田市13637644339: 用C++编写一个十进制表示的正整数,将其转化为二进制表示并输出结果. -
蔽民维瑙: #include<iostream.h> void main() {int a,i;int c[16]; //这里既然是叫人家重新输入,那就要用循环啊!! cout<<"输入一个十进制的正整数:"<<endl;cin>>a;while( a < 0 ){cout<<"输入错误,请输入正整数!";cout<<"输入一个十进...

莆田市13637644339: c++编程将一个十进制数分别转成二进制数 八进制数 十六进制数
蔽民维瑙: 很简单的问题么!!!!!! 把你的电脑打开! 开始——附件——计算器 打开计算器以后,再最上边的对话框上有个“查看”选项,把计算器调成“科学型” 你就可以输入十进制的数,通过下一排的选项就可以吧10进制的数转化为16进制,8进制,2进制的数了!

莆田市13637644339: c++怎么把一个十进制数转换成二进制,并计算二进制数最长连续1和0的长度 -
蔽民维瑙:[答案] 很简单.如果这个十进制数的值在 C/C++ 语言本身所支持的范围内,如 char,short,int,long 之类,只需循环 N 次就能得到二进制值.这里的 N 等于数据类型的位数,如 char=8,short=16,int=32,long=32.转换的方法就是直接判断数据的每一位,示例代码(...

莆田市13637644339: c++编写程序将十进制数转化为八位二进制输出(要求用main) -
蔽民维瑙: #include int ShiToEr(int a,int* b) { int i=0; while(1) { b[i]=a%2; a=a/2; if(a==0) break; else { ++i; continue; } } return i; } int main() { int a,b[1000],i; for(int l=0;l=0;--j) printf("%d" ,b[j]); printf("\n"); return 0; }

莆田市13637644339: C++:编写一个程序,将用户输入的一个十进制数转换成二进制数、八进制数、十六进制数. -
蔽民维瑙: hex< } cout<oct<<endl; b=a,oct表示八进制!=0) { c+=(b%2)*d,c,b;a;/" int main() { int a;八进制和十六进制使用格式化输出即可;/ while(b;/<c=0;endl;a;endl;;&lt,d;<< d*=10;<依次把b除以2的余数写在c的对应位置上 b=b/请输入待转换的数;<>d=1;&lt,hex表示十六进制 cout</:"</ using namespace std;iostream> cin>a<2;&lt#include<二进制分别计算每一位 if(a==0)cout<a< cout<c< cout</

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网