在電腦自帶的計算器中啟用“程序員”設置,即可進行16進制轉換10進制的操作。具體操作請參照以下步驟。
1、在電腦的任務欄中找到“開始”圖標,然后進行點擊進入開始菜單界面。
2、在開始菜單中,依次點擊選項“所有程序/附件/計算器”,就會進入計算器界面。
3、在計算器的查看選項頁面中找到“程序員”選項后點擊。
4、在出現的界面中,首先選中“十六進制”選項,然后輸入需要轉換的十六進制數,這里演示為“E”。
5、輸入完后,點擊軟件界面中的“十進制”選項,計算欄中就會出現十六進制數“E”對應的十進制數“14”。如果要十進制數轉十六進制數,就先輸入十進制數,再點擊十六進制選項。完成以上設置后,即可在電腦計算器中進行16進制轉換10進制的操作。
呃,這道題我之前有做過類似的。
我直接把之前我寫的代碼發給你,看看吧!!!!
#include "iomanip"
#include "stdlib.h"
#include "買粉絲nio.h"
#include "string"
#include "math.h"
#include "iostream"
int mainmenu();
int dec_to_bin(); //10->2
int bin_to_dec(); //2->10
void tran2_16(); //2->十六進制
int tran16_2(); //16->2
int hex_dec(); //十六進制到十進制
int dec_hex(); //十進制到十六進制
#define N 20
#define Q 5
using namespace std;
string ch2_16(string ch);
char B2H4bit(string s)
{
char ret;
if (s == "0000") ret = '0';
else if (s == "0001") ret = '1';
else if (s == "0010") ret = '2';
else if (s == "0011") ret = '3';
else if (s == "0100") ret = '4';
else if (s == "0101") ret = '5';
else if (s == "0110") ret = '6';
else if (s == "0111") ret = '7';
else if (s == "1000") ret = '8';
else if (s == "1001") ret = '9';
else if (s == "1010") ret = 'A';
else if (s == "1011") ret = 'B';
else if (s == "1100") ret = 'C';
else if (s == "1101") ret = 'D';
else if (s == "1110") ret = 'E';
else if (s == "1111") ret = 'F';
else ret='\0'; // 使之輸出時能于此結束,而避免出現亂碼了。
return ret; //不過為什么他一定要放在main函數之前才行。??????
}
void main()
{
mainmenu();
}
int mainmenu()
{
買粉絲ut<<"============進制轉換器==============\n";
買粉絲ut<<"----------------------請選擇數字菜單\n";
買粉絲ut<<" 1.十進制轉換為二進制 \n";
買粉絲ut<<" 2.二進制轉換為十進制 \n";
買粉絲ut<<" 3.二進制轉換為十六進制 \n";
買粉絲ut<<" 4.十六進制轉換為二進制 \n";
買粉絲ut<<" 5.十六進制轉換為十進制 \n";
買粉絲ut<<" 6.十進制轉換為十六進制 \n";
買粉絲ut<<" 7.退出 \n";
買粉絲ut<<"====================================\n";
char ch=getch();
switch(ch-48)
{ case 1 : dec_to_bin(); break;
case 2 : bin_to_dec(); break;
case 3 : tran2_16(); break;
case 4 : tran16_2(); break;
case 5 : hex_dec(); break;
case 6 : dec_hex(); break;
case 7 : return 0;
}
}
int dec_to_bin() //十進制到二進制
{
char b[N];
char ch[N];
string all;
買粉絲ut<<"請輸入待轉換的十進制數:";
cin>>b;
long d=atol(b);
long bb=d;
int i=0,flag=-1;
int j;
while(ch[i]!='\0')
{
if(ch[i]=='.')
{
flag=i;
break;
}
i++;
}
i=0;
while(d!=0)
{ ch[i]=d%2+'0';
d=d/2;
all=ch[i]+all; //加在前面
i++;
}
if(flag==-1)
{ 買粉絲ut<<all<<endl;
return 0;
}
all=all+".";
double x=atof(b) ;
x=x-(double)bb; //you xiao shu此時d已經為0,故不用d而用之前記下的bb
int r=0;
while(1)
{ if(x*2.0>1.0)
{
all=all+"1";
x=x*2.0-1;
r++;
}
else if(x*2.0<1.0)
{
all=all+"0";
x=x*2.0;
r++;
}
else if(x*2.0==1.0)
{
all=all+"1";
break;}
if(r>=Q) //達到精度M
break;
}
買粉絲ut<<"轉換后所得對應二進制為:";
買粉絲ut<<all<<endl;
}
int bin_to_dec() //二進制轉到十進制
{
char ch[N];
float a=0; //
買粉絲ut<<"請輸入待轉換的二進制數:";
cin>>ch; //這里應該改為ch
int j;
int i=0,flag=-1;
while(ch[i]!='\0')
{
if(ch[i]=='.')
{
flag=i;
break;
}
i++;
}
i=0;
if(flag==-1)
{ while(ch[i]!='\0')
{
a=a*2+ch[i]-'0';
i++;
}
買粉絲ut<<a<