c语言十进制转化为十六进制
十进制转化为十六进制代码:
#include "stdio.h" int main()
{
int num=0;
int a[100];
int i=0;
int m=0;
int yushu;
char hex[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
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("
");
}
程序运行结果:
扩展资料:
进制转换由一组数码符号和两个基本因素“基数”与“位权”构成。基数是指,进位计数制中所采用的数码(数制中用来表示“量”的符号)的个数。位权是指,进位制中每一固定位置对应的单位值。
举例:二进制数转换为十进制数
二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……
所以,设有一个二进制数:0110 0100,转换为10进制为:
下面是竖式:
0110 0100 换算成十进制
第0位 0 * 20 = 0
第1位 0 * 21 = 0
第2位 1 * 22 = 4
第3位 0 * 23 = 0
第4位 0 * 24 = 0
第5位 1 * 25 = 32
第6位 1 * 26 = 64
第7位 0 * 27 = 0
公式:第N位2(N)
---------------------------
100
用横式计算为:
0 * 20 + 0 * 21 + 1 * 22 + 0 * 23 + 0 * 24 + 1 * 25 + 1* 26 + 0 * 27 = 100
0乘以多少都是0,所以我们也可以直接跳过值为0的位:
1 * 22 + 1 * 25 +1*26 = 100
参考资料:
百度百科-进制转换
绛旓細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");} 绋嬪簭杩愯缁撴灉锛...
绛旓細鍦–璇█涓紝鍙互浣跨敤`printf()`鍑芥暟鐨勬牸寮忔帶鍒剁灏嗗崄杩涘埗鏁拌浆鎹负鍗佸叚杩涘埗銆傚叿浣撴潵璇达紝鍙互浣跨敤 `%x` 鏍煎紡鎺у埗绗︺備緥濡傦細```c int decimal_number = 255;printf("%x", decimal_number);```涓婅堪浠g爜灏嗗崄杩涘埗鏁255杞崲涓哄崄鍏繘鍒跺舰寮忥紝骞惰緭鍑虹粨鏋渇f銆傞渶瑕佹敞鎰忕殑鏄紝鍦ㄤ娇鐢 `%x` 鏍煎紡鎺у埗绗︽椂锛岃緭...
绛旓細C璇█绋嬪簭涓紝鍗佽繘鍒跺拰鍗佸叚杩涘埗瀹為檯鏄簰閫氱殑銆傚崄鍏繘鍒舵暟鐢辨暟瀛0~9銆佸瓧姣岮~F锛堟垨a~f锛夌粍鎴愩傛妸鍗佸叚杩涘埗鏁版寜鏉冨睍寮銆佺浉鍔犲嵆寰楀崄杩涘埗鏁般傜幇瀹炰腑鍗佸叚杩涘埗鏁板拰鍗佽繘鍒舵暟涓嶅彲浠ョ洿鎺ョ浉鍔狅紝濡傛槸鍦ㄧ數鑴戜笂鐨勮瘽鏄彲浠ョ殑锛屼綍绉嶈繘鍒舵暟鍦ㄧ數鑴戜笂閮芥槸浠ヤ簩杩涘埗鐨勫舰寮忚〃绀虹殑锛屽湪鐢佃剳缂栧啓绋嬪簭鏃舵槸鍙互鐩稿姞鐨勩傚崄杩涘埗鏁...
绛旓細C璇█鍗佽繘鍒惰浆鍗佸叚杩涘埗鏁扮殑婧愪唬鐮佸涓嬶細include<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"...
绛旓細鏂规硶涓锛#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 -...
绛旓細璁句竴涓暟涓簄锛屽垯鍦C璇█涓叾涓綅銆佸崄浣嶃佺櫨浣嶃佸崈浣嶄緷娆¤繖鏍疯绠楋細n/1%10锛宯/10%10锛宯/100%10锛宯/1000%10 浠g爜濡備笅锛歩nclude<stdio.h> int main(){ int n = 123456;int unitPlace = n / 1 % 10;int tenPlace = n / 10 % 10;int hundredPlace = n / 100 % 10;int thousand...
绛旓細include <stdio.h>#define LEN 100char *decimal2Others (int value, char *string, int radix) { /*鍗佽繘鍒舵暟杞浠绘剰杩涘埗*//*闄ゅ熀鏁板彇浣欐硶锛氬崄杩涘埗鏁颁笉鏂櫎浠ヨ繘鍒跺熀鏁扮洿鑷充负闆讹紝姣忔鐩搁櫎鍙栧緱浣欐暟涔嬮嗗簭鍗充负杞崲缁撴灉*/int remain,i=1,j=0; int temp[LEN]; while (value) { /*闄ゅ熀鏁...
绛旓細渚嬪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);printf("鍗佸叚杩涘埗涓:%x",x);//%x杈撳嚭鍗佸叚杩涘埗 } ...
绛旓細//鍗佽繘鍒杞崲鎴愪簩杩涘埗,杞垚16杩涘埗鎳掑緱鍐,鍘熺悊宸笉澶歕x0d\x0a#include\x0d\x0aint main()\x0d\x0a{\x0d\x0aint a,sz[100];\x0d\x0aint b,c,d=0,l;\x0d\x0afor(b=0;b<101;b++) sz[b]=0;\x0d\x0aprintf("璇疯緭鍏ヤ竴涓崄杩涘埗鐨勬暣鏁:\n");\x0d\x0ascanf("...
绛旓細渚嬪锛鍗佽繘鍒 17852.5 杞寲涓哄崄鍏繘鍒锛17852/16 = 1115 浣 12 -- c 1115/16 = 69 浣 11 -- b 69/16 = 4 浣 5 4/16 = 0 浣 4 鏁存暟閮ㄥ垎 寰16杩涘埗: 45bc .5 * 16 = 8.0 鍙 8 浣 0 灏忔暟閮ㄥ垎 寰16杩涘埗: .8 鍚堣捣鏉 0x45bc.8 c 璇█绋嬪簭 printf("%x"...