C语言怎么把16进制数一个一个放到数组里? c语言怎么把16进制放进数组
c\u8bed\u8a00\u4e2d \u600e\u4e48\u5c06\u4e00\u7ec416\u8fdb\u5236\u6570\u52a0\u5165\u4e00\u4e2a\u6570\u7ec4\u53ef\u4ee5\u572816\u8fdb\u5236\u6570\u524d\u52a0"0x"\u7136\u540e\u8f93\u5165\u6570\u7ec4\u3002
\u5982\u8981\u5728\u6570\u7ec4char
a[5]\u4e2d\u8f93\u5165FA,FB,FC,FD,FE,FF\u4e94\u4e2a\u5341\u516d\u8fdb\u5236\u6570\uff0c\u53ef\u4ee5\u5982\u4e0b\u5904\u7406\uff1a
char a[5] = {0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF};
\u7531\u4e8e\u4e24\u4f4d16\u8fdb\u5236\u957f\u5ea6\u4e3a8bit\uff0c\u6b63\u597d\u53ef\u4ee5\u5bb9\u7eb3\u4e00\u4e2a\u4e24\u4f4d16\u8fdb\u5236\u6570\uff1b\u5bf9\u4e8e\u5176\u4ed6\u7c7b\u578b\u7684\u6570\u7ec4\uff0c\u53ef\u5982\u6cd5\u70ae\u5236\uff0c\u53ea\u9700\u7559\u610f\u6570\u636e\u7684\u8303\u56f4\u3002
\u548c\u53d8\u91cf\u8d4b\u503c\u7684\u65b9\u6cd5\u4e00\u6837\u3002
\u5728\u6570\u7ec4\u5b9a\u4e49\u65f6\u8d4b\u503c\uff0c\u5982\uff1a
char k[5] = {0x41, 0x68, 0x52, 0x33, 0x17};
\u7a0b\u5e8f\u4e2d\u95f4\u8d4b\u503c\uff0c\u5982\uff1a
k[3] = 0x59;
*(k+2) = 0x20;
\u7b49\u7b49\u3002
#include <stdio.h>
int main()
{
int i,a[8];
for(i=0;i<8;++i)
scanf("%1x",&a[i]);
for(i=0;i<8;++i)
printf("%x ",a[i]);
return 0;
}
因为%x读取的是一个十六进制数,而不是一个十六进制字符.你希望是字符,和%x不一样 你应该挨个字符转换 int char2hex(char ch) { if(ch >= '0' && ch <='9) return c
例:
#include <stdio.h>
#include <string.h>
char sDec[4] = {0x05,0xc5,0xb3,0xea};
//把 0x05,0xc5,0xb3,0xea 组合成一个十六进制数 0x05c5b3ea ,
//并且把 0x05c5b3ea 转换成十进制数。
unsigned int i,v;
int main() {
v=0;
for (i=0;i<4;i++) v|=((unsigned int)sDec[3-i]&0xFFu)<<(i*8);
printf("0x%x,%u\n",v,v);
return 0;
}
//0x5c5b3ea,96842730
a[5]?=?{0xFA,?0xFB,?0xFC,?0xFD,?0xFE,?0xFF};由于两位16进制长度为8bit,正好可以容纳一个两位16进制数;对于其他类型的数组,可如法炮制,只需留意数据的范围。
因为%x读取的是一个十六进制数,而不是一个十六进制字符.你希望是字符,和%x不一样
你应该挨个字符转换
int char2hex(char ch) {
if(ch >= '0' && ch <='9) return ch -'0';
if(ch>='a' &&ch <= 'f') return 10+ch-'a';
if(ch>='A' &&ch <= 'F') return 10+ch-'A';
throw new InvalidArgumentException(""+ch);
}
绛旓細int main(){ int i,a[8];for(i=0;i<8;++i)scanf("%1x",&a[i]);for(i=0;i<8;++i)printf("%x ",a[i]);return 0;}
绛旓細include <string.h> char sDec[4] = {0x05,0xc5,0xb3,0xea};//鎶 0x05,0xc5,0xb3,0xea 缁勫悎鎴涓涓崄鍏繘鍒舵暟 0x05c5b3ea 锛//骞朵笖鎶 0x05c5b3ea 杞崲鎴愬崄杩涘埗鏁般倁nsigned int i,v;int main() { v=0;for (i=0;i<4;i++) v|=((unsigned int)sDec[3-i]&0xFFu)<<(...
绛旓細1銆丆/C++瑙勫畾,16杩涘埗鏁板繀椤讳互 0x寮澶銆傛瘮濡 0x1琛ㄧず涓涓16杩涘埗鏁,鑰1鍒欒〃绀轰竴涓崄杩涘埗,0xff,0xFF,0X102A,绛夌瓑.鍏朵腑鐨剎涓嶇敤鍖哄垎澶у皬鍐欍侰/C++涓紝10杩涘埗鏁版湁姝h礋涔嬪垎銆傛瘮濡12琛ㄧず姝12锛岃-12琛ㄧず璐12銆備絾8杩涘埗鍜16杩涘埗鍙兘琛ㄨ揪鏃犵鍙风殑姝f暣鏁帮紝濡傛灉鍦ㄤ唬鐮佷腑鍐-0xF2锛孋/C++骞朵笉鎶婂畠褰撴垚涓...
绛旓細temp1[i - 1] = temp[i];} 杩欐牱temp1[]涓氨瀛樺偍浜嗕綘鐨勫悗鍥涗釜瀛楄妭锛屼箣鍚庡啀灏嗚繖涓猼emp1鐨勫厓绱涓涓竴涓杞崲涓鍗佸叚杩涘埗杈撳嚭灏卞ソ锛屾瘮濡傝 for(pos = 0;pos < 4; pos ++)printf("%f ",(float)temp1[pos]);printf("\n");
绛旓細鍙互鍙傝冧笅闈㈢殑浠g爜锛歩nt a,b;scanf("%x%x",&a,&b);printf("%x\n%x\n",a+b,a-b);杈撳叆:9 7 杈撳嚭:10 2
绛旓細printf("0x%x",a);//16杩涘埗杈撳嚭printf("%llX\n",a);涔熷彲杈撳嚭涓涓崄鍏繘鍒舵暟濡傛灉绾㈣壊閮ㄥ垎澶у啓X鍒欒緭鍑哄崄鍏繘鍒朵负澶у啓瀛楁瘝鍚﹀垯灏忓啓x杈撳嚭涓哄皬鍐欏瓧姣 } 鍙傝冿細鏈澶ф暟瀛楁槸15浣嶏紝娌℃湁瓒呰繃__int64鑳借〃杈剧殑鏈澶ф暟銆俖_int64鏈澶ц兘琛ㄧず16浣嶅崄鍏繘鍒舵暟銆傛墍浠ョ洿鎺ヨ繘琛屽姞鍑忓氨琛屼簡锛岄渶瑕佹敞鎰忕殑鏄緭鍏ヨ緭鍑虹殑鏍煎紡...
绛旓細HEX_DEC(num/N,N);} printf("%d",num%N);} void main(){ int num;printf("杈撳叆涓涓崄鍏繘鍒鐨勬暟\n");scanf("%x",&num);printf("鐩存帴鐢%%d杈撳嚭:%d\n",num);printf("鐢ㄥ嚱鏁拌緭鍑:");HEX_DEC(num,10);//杞崲鎴愬嚑杩涘埗灏辨妸绗簩涓弬鏁版崲鎴愬嚑 printf("\n");system("pause");} ...
绛旓細/ 鍑芥暟锛歝onvert 鍔熻兘锛鍗佸叚杩涘埗杞崄杩涘埗 / void conver(char arr[]){ int i,j=0,k=0,sum=0,n=strlen(arr);int num[100];for(i=0;i<n;i++){ switch(arr){ case'A':num[j++]=10;break;case'B':num[j++]=11;break;case'C':num[j++]=12;break;case'D':num[j++]=13;...
绛旓細鍦ㄨ繖閲 浣犺鏄庣櫧鐨勬槸 璁$畻鏈哄瓨鍏ョ殑鏁版嵁鏄簩杩涘埗 0 1 鎵浠canf("%d",&a);灏辨槸浣犺緭鍏ョ殑涓涓鍗佽繘鍒 姣斿 浣犺緭鍏10锛堣繖杈规槸鍗佽繘鍒舵暟锛 浠栦篃浠h〃10锛堝崄鍏繘鍒讹級 璁$畻鏈哄瓨鍌ㄦ槸 10000scanf("%x",&a);灏辨槸浣犺緭鍏ョ殑涓涓崄鍏繘鍒 姣斿 浣犺緭鍏10锛堟槸杩欒竟鏄鍗佸叚杩涘埗鏁锛 浠栦篃浠h〃8锛堝崄杩涘埗锛 璁$畻鏈...
绛旓細int func(unsigned int x){ int countx = 0;while (x){ countx++;x = x & (x-1);} return countx;} 绠楁硶涓嶈В閲婏紝鑷繁鐮旂┒鍚с