用C语言将十进制数转成十六进制数, 用按位方法 将十进制数902.348转换为二进制数、八进制数和十六进制数...

\u7528JAVA\u6808\u7684\u65b9\u6cd5\u5b9e\u73b0\u5341\u8fdb\u5236\u8f6c\u5341\u516d\u8fdb\u5236

\u770b\u5230\u8fd9\u9053\u9898\u76ee\u60f3\u5230\u4e86\u4e09\u4e2a\u65b9\u6cd5\uff0c\u4f9d\u6b21\u7ed9\u4f60\u5217\u51fa\uff08\u6808\u7684\u65b9\u5f0f\uff0c\u9012\u5f52\uff0c\u6570\u7ec4\uff09
\u6808\u7684\u65b9\u5f0f\uff1a
//\u601d\u8def\uff1a\u5c06\u5341\u8fdb\u5236\u6570(number)\u9664\u4ee5R\u53d6\u4f59\uff0c\u8ba9\u53d6\u5f97\u7684\u4f59\u6570(number Mod R )\u8fdb\u6808\uff0c\u8ba9\u5341\u8fdb\u5236\u6570\u53d8\u4e3a
number/R,\u91cd\u590d\u4e0a\u8ff0\u8fc7\u7a0b\uff0c\u76f4\u5230number\u7b49\u4e8e0\u4e3a\u6b62\uff0c\u7136\u540e\u4f9d\u6b21\u4ece\u6808\u4e2d\u53d6\u51fa\u6570\u636e\u5373\u4e3a\u6240\u6c42\uff0c\u76f4\u5230\u6808\u4e3a\u7a7a\uff0c\u4e0b\u9762\u662f\u5b9e\u73b0\u7684\u4ee3\u7801\uff1a
#include
#include
#define MAX_SIZE 80
typedef struct
{//\u6808\u7684\u6570\u636e\u7ed3\u6784,\u91c7\u7528\u6570\u7ec4
char data[MAX_SIZE];
int top;
}stack;
int isfull(stack s)
{//\u5224\u65ad\u6808\u662f\u5426\u5df2\u6ee1
return (++s.top==MAX_SIZE);
}
int isempty(stack s)
{//\u5224\u65ad\u6808\u4e3a\u7a7a
return s.top==-1;
}
void push(stack * s,char in_data)
{//\u8fdb\u6808
if(isfull(*s))
{
printf("\u6808\u5df2\u6ee1,\u4e0d\u80fd\u6267\u884c\u64cd\u4f5c!\n");
exit(1);
}
s->data[++s->top]=in_data;
}
void pop(stack *s)
{//\u51fa\u6808
if(isempty(*s))
{
printf("\u6808\u5df2\u7a7a,\u4e0d\u80fd\u6267\u884c\u64cd\u4f5c!\n");
exit(1);
}
s->top--;
}
char top_value(stack *s)
{//\u53d6\u6808\u9876\u5143\u7d20
if(isempty(*s))
{
printf("\u6808\u5df2\u7a7a,\u4e0d\u80fd\u6267\u884c\u64cd\u4f5c!\n");
exit(1);
}
return s->data[s->top];
}
int main(int argc,char** argv)
{
int number;
stack result;
result.top=-1;
int r_range;
printf("\u8f93\u5165\u8f6c\u6362\u7684\u6570\u636e\u548c\u5bf9\u5e94\u7684\u8fdb\u5236:");
scanf("%d%d",&number,&r_range);
printf("%d\u5bf9\u5e94\u7684%d\u8fdb\u5236\u4e3a:",number,r_range);
while(number!=0)
{
char input;
if(number%r_range>=10)
input=((number%r_range)-10)+'a';
else
input=((number%r_range)+'0');
push(&result,input);
number=number/r_range;
}
while(!isempty(result))
{
putchar(top_value(&result));
pop(&result);
}
return 0;
}
====================================================================
\u9012\u5f52\u7684\u65b9\u5f0f\uff1a\u5b9a\u4e49\u4e00\u4e2a\u8f93\u51fa\u5b57\u7b26\u4e32\uff0c\u8ba9\u5341\u8fdb\u5236\u6570(number)\u9664\u4ee5\u8981\u8f6c\u6362\u7684\u8fdb\u5236R \u82e5\u7ed3\u679c\u4e0d\u4e3a0\uff0c\u5219\u7ee7\u7eed\u6267\u884c\u524d\u8ff0\u64cd\u4f5c\uff0c\u76f4\u5230\u5f97\u5230\u9664\u7684\u7ed3\u679c\u4e3a\u96f6\uff0c\u6b64\u65f6number\u9664\u4ee5R\u53d6\u5176\u4f59\u6570\uff0c\u5c06\u5176\u7ed3\u679c\uff08number Mod R)\u6620\u5c04\u5230\u6307\u5b9a\u7684\u8f93\u51fa\u5b57\u7b26\u6570\u7ec4\u4e2d\u4e0b\u6807\u8f93\u51fa\u5373\u4e3a\u7ed3\u679c(\u63cf\u8ff0\u7684\u4e0d\u662f\u5f88\u597d\uff0c\u4f60\u770b\u4ee3\u7801\u5427\uff09
//\u7528\u8fd9\u79cd\u65b9\u6cd5\u4e5f\u6bd4\u8f83\u53ef\u4ee5
#include
void ten_to_any(int number,int range_t)
{//\u9012\u5f52\u5b9e\u73b0
char text[]="0123456789abcdef";
int k=number/range_t;
if(k)
ten_to_any(k,range_t);
putchar(text[number%range_t]);
}
int main()
{

int number,r_range;
while(1)
{
printf("\n\u8f93\u5165\u8f6c\u6362\u7684\u6570\u636e,\u548c\u5bf9\u5e94\u8fdb\u5236:");
scanf("%d%d",&number,&r_range);
if(r_range>16||r_range<2)
{
printf("\u8d85\u51fa\u4e86\u8303\u56f4!");
break;
}
printf("%d\u5bf9\u5e94\u7684%d\u8fdb\u5236\u4e3a:",number,r_range);
ten_to_any(number,r_range);
}
return 0;
}
//\u91c7\u7528\u6570\u7ec4\u7684\u5f62\u5f0f
\u8fd9\u662f\u6211\u4e0a\u6b21\u56de\u7b54\u522b\u4eba\u7684
\u7528\u4e00\u4e2a\u5b57\u7b26\u4e32\u4fdd\u5b58\u8f6c\u6362\u7684\u7ed3\u679c\uff08str[80]\uff09\u5047\u8bbe\u5341\u8fdb\u5236\u6570\u4e3anumber\uff0c\u8f6c\u6362\u7684\u8fdb\u5236\u4e3adigits,\u5219\u5c06numbers%digits\uff08\u6839\u636e\u4f59\u6570\u7684\u60c5\u51b5\u505a\u76f8\u5e94\u5904\u7406\uff09\u7ed3\u679c\u4fdd\u5b58\u5728\u5b57\u7b26\u4e32str\u4e2d\uff0c\u5c06numbers\u53d8\u4e3anumbers/digits;\u76f4\u5230numbers\u4e3a\u96f6\u3002\u5f97\u5230\u7684\u7ed3\u679c\u4e3a\u9006\u5e8f\uff0c\u9700\u8981\u5c06\u5176\u5012\u8f6c\uff0c\u5012\u8f6c\u540e\u5373\u4e3a\u6240\u6c42\u3002
//-----------c\u8bed\u8a00\u5b9e\u73b010\u8fdb\u5236\u8f6c2~16\u8fdb\u5236
#include
#include
void TentoAny(int number,char *str,int digits)
{
int i=0;
if(digits>16||digits<2)//\u975e2~16\u8fdb\u5236\u5219\u76f4\u63a5\u9000\u51fa
return ;
while(number)
{
if(number%digits>=10)
{
str[i++]='A'+(number%digits-10);
}
else
{
str[i++]=number%digits+'0';
}
}
str[i]='\0';
strrev(str);//strrev\u51fd\u6570\u5b9a\u4e49\u5728string.h\u4e2d\u7684\uff0c\u662f\u5bf9\u5b57\u7b26\u4e32\u505a\u9006\u5e8f\u5904\u7406\u7684\u51fd\u6570
//\u8fd9\u91cc\u9700\u8981\u9006\u5e8f\u7684\u539f\u56e0\u662f\u56e0\u4e3a\u5f97\u5230\u7684\u7ed3\u679c\u4e3a\u8be5\u8fdb\u5236\u7684\u9006\u5e8f
}

902\uff1a
1110000110\uff1b1606\uff1b386
348\uff1a
101011100\uff1b534\uff1b15c
902.348\uff1a
1110000110.010110010001011010000111001010110000001\uff1b
1606.2621320712601\uff1b
386.5916872b02\u3002

#include <stdio.h>
#include <stdlib.h>
void F(int n)
{
     if ( n )
     {
          F(n/16);
          if (n%16 < 10) printf("%d",n%16);
          else printf("%c",(n%16)-10+'A');
     }
}
int main()
{
    int num;
    scanf("%d",&num);
    F(num);

    return 0;
}


  • 鐢–璇█灏嗗崄杩涘埗鏁拌浆鎴愬崄鍏繘鍒鏁, 鐢ㄦ寜浣嶆柟娉
    绛旓細return 0;}
  • c璇█ 鍗佽繘鍒惰浆鎹负鍗佸叚杩涘埗?
    绛旓細鍦–璇█涓紝鍙互浣跨敤`printf()`鍑芥暟鐨勬牸寮忔帶鍒剁灏嗗崄杩涘埗鏁拌浆鎹负鍗佸叚杩涘埗銆傚叿浣撴潵璇达紝鍙互浣跨敤 `%x` 鏍煎紡鎺у埗绗︺備緥濡傦細```c int decimal_number = 255;printf("%x", decimal_number);```涓婅堪浠g爜灏嗗崄杩涘埗鏁255杞崲涓哄崄鍏繘鍒跺舰寮忥紝骞惰緭鍑虹粨鏋渇f銆傞渶瑕佹敞鎰忕殑鏄紝鍦ㄤ娇鐢 `%x` 鏍煎紡鎺у埗绗︽椂锛岃緭...
  • c璇█鍗佽繘鍒惰浆鍖栦负鍗佸叚杩涘埗
    绛旓細printf("璇疯緭鍏ヤ竴涓鍗佽繘鍒舵暟锛");scanf("%d",&num); while(num>0) { yushu=num%16;a[i++]=yushu;num=num/16;} printf("杞寲涓哄崄鍏繘鍒鐨勬暟涓猴細0x"); for(i=i-1;i>=0;i--)//鍊掑簭杈撳嚭 {m=a[i];printf("%c",hex[m]); } printf("\n");} 绋嬪簭杩愯缁撴灉锛...
  • C璇█缂栫▼:鎬庝箞鎶婁竴涓鍗佽繘鍒舵暟杞崲鎴愪负涓涓鍗佸叚杩涘埗鏁?
    绛旓細char oNumTable[6] = {'A', 'B', 'C', 'D', 'E', 'F'};void dToO(int, char*);int main(){ int dNum;char oNum[100] = {0};//杈撳叆涓涓鍗佽繘鍒舵暟 scanf("%d", &dNum);//璋冪敤杞崲鍑芥暟锛灏嗗崄杩涘埗杞崲鎴浠ュ瓧绗︿覆琛ㄧず鐨鍗佸叚杩涘埗 dToO(dNum, oNum);//杈撳嚭浠ュ瓧绗︿覆琛ㄧず鐨1...
  • C璇█涓鍗佽繘鍒惰浆鎹㈠崄鍏繘鍒舵暟鏄粈涔?
    绛旓細C璇█绋嬪簭涓紝鍗佽繘鍒跺拰鍗佸叚杩涘埗瀹為檯鏄簰閫氱殑銆傚崄鍏繘鍒舵暟鐢辨暟瀛0~9銆佸瓧姣岮~F锛堟垨a~f锛夌粍鎴愩傛妸鍗佸叚杩涘埗鏁版寜鏉冨睍寮銆佺浉鍔犲嵆寰楀崄杩涘埗鏁般傜幇瀹炰腑鍗佸叚杩涘埗鏁板拰鍗佽繘鍒舵暟涓嶅彲浠ョ洿鎺ョ浉鍔狅紝濡傛槸鍦ㄧ數鑴戜笂鐨勮瘽鏄彲浠ョ殑锛屼綍绉嶈繘鍒舵暟鍦ㄧ數鑴戜笂閮芥槸浠ヤ簩杩涘埗鐨勫舰寮忚〃绀虹殑锛屽湪鐢佃剳缂栧啓绋嬪簭鏃舵槸鍙互鐩稿姞鐨勩傚崄杩涘埗鏁...
  • c璇█缂栫▼ 鎶婂崄杩涘埗杞崲涓哄崄鍏繘鍒
    绛旓細鏂规硶涓锛#include<iostream>#include <string>using namespace std;string DecIntToHexStr(long long num){string str;long long Temp = num / 16;int left = num % 16;if (Temp > 0)str += DecIntToHexStr(Temp);if (left < 10)str += (left + '0');elsestr += ('A' + left -...
  • 濡備綍鐢╟璇█瀹炵幇10杩涘埗杞崲鎴16杩涘埗
    绛旓細include <stdio.h>#define LEN 100char *decimal2Others (int value, char *string, int radix) { /*鍗佽繘鍒舵暟杞浠绘剰杩涘埗*//*闄ゅ熀鏁板彇浣欐硶锛氬崄杩涘埗鏁颁笉鏂櫎浠ヨ繘鍒跺熀鏁扮洿鑷充负闆讹紝姣忔鐩搁櫎鍙栧緱浣欐暟涔嬮嗗簭鍗充负杞崲缁撴灉*/int remain,i=1,j=0; int temp[LEN]; while (value) { /*闄ゅ熀鏁...
  • 10杩涘埗杞16杩涘埗c璇█
    绛旓細浣鎶婂崄杩涘埗鐨勬暟涓嶅仠闄や互16鐨勪綑鏁版寜浠庡彸鍒板乏鐨勯『搴忔帓璧锋潵灏辨槸16杩涘埗渚嬪55/16=0浣5 渚嬪100 100/16=6浣4 6/16浣6锛屾墍浠ュ氨鏄64 鍐嶄緥濡1000 1000/16=62浣8 62/16=3浣12 3/16浣3鎵浠ョ粨鏋滄槸3C8 //C璇█鍗杩涘埗杞16杩涘埗瀹炰緥#include "stdio.h"void main(){ int x;scanf("%d",&x);p...
  • C璇█鍗佽繘鍒惰浆鍗佸叚杩涘埗鏁
    绛旓細C璇█鍗佽繘鍒惰浆鍗佸叚杩涘埗鏁鐨勬簮浠g爜濡備笅锛歩nclude<bits/stdc++.h> using namespace std;void IntZh0x(int n){int s=n%16;if(n/16!=0) IntZh0x(n/16);if(s>9){ if(s==15) cout<<"F";else if(s==14) cout<<"E";else if(s==13) cout<<"D";else if(s==12) cout<<"C"...
  • 4625杞垚鍗佸叚杩涘埗鏄灏?
    绛旓細4625杞垚鍗佸叚杩涘埗鏄1211锛屼互涓嬫槸涓涓C璇█绋嬪簭锛岀敤浜灏嗗崄杩涘埗鏁4625杞垚鍗佸叚杩涘埗鏁帮細鍦ㄨ繖涓▼搴忎腑锛屾垜浠鍏堝畾涔変簡涓涓暣鍨嬪彉閲弉um锛岀敤浜庡瓨鍌ㄥ崄杩涘埗鏁4625銆傜劧鍚庯紝鎴戜滑瀹氫箟浜嗕竴涓暣鍨嬪彉閲弐emainder锛岀敤浜庡瓨鍌╪um闄や互16鐨勪綑鏁帮紝浠ュ強涓涓暣鍨嬫暟缁剅esult鍜屼竴涓暣鍨嬪彉閲廼锛岀敤浜庡瓨鍌ㄥ崄鍏繘鍒舵暟鐨勬瘡涓浣嶃傜劧鍚庯紝...
  • 扩展阅读:十六进制在线转换器 ... 7c十六进制转化十进制 ... 十六进制编程软件 ... 十六进制转换计算器 ... 六进制对照表 ... 合法的十六进制数要求 ... 十六进制计算在线 ... c语言十六进制数表示 ... python 十六进制转十进制 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网