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);
}

  • C璇█鎬庝箞鎶16杩涘埗鏁颁竴涓竴涓鏀惧埌鏁扮粍閲?
    绛旓細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;}
  • c璇█涓 鎬庝箞灏嗕竴缁16杩涘埗鏁鍔犲叆涓涓鏁扮粍
    绛旓細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)<<(...
  • c璇█鎬庢牱瀹氫箟骞惰緭鍏涓涓16杩涘埗鏁
    绛旓細1銆丆/C++瑙勫畾,16杩涘埗鏁板繀椤讳互 0x寮澶銆傛瘮濡 0x1琛ㄧず涓涓16杩涘埗鏁,鑰1鍒欒〃绀轰竴涓崄杩涘埗,0xff,0xFF,0X102A,绛夌瓑.鍏朵腑鐨剎涓嶇敤鍖哄垎澶у皬鍐欍侰/C++涓紝10杩涘埗鏁版湁姝h礋涔嬪垎銆傛瘮濡12琛ㄧず姝12锛岃-12琛ㄧず璐12銆備絾8杩涘埗鍜16杩涘埗鍙兘琛ㄨ揪鏃犵鍙风殑姝f暣鏁帮紝濡傛灉鍦ㄤ唬鐮佷腑鍐-0xF2锛孋/C++骞朵笉鎶婂畠褰撴垚涓...
  • 濡備綍鐢c璇█浠庝覆鍙h鍙栫殑16杩涘埗鏁涓彁鍙4涓瓧鑺傚彉涓烘诞鐐规暟?鎬!!!
    绛旓細temp1[i - 1] = temp[i];} 杩欐牱temp1[]涓氨瀛樺偍浜嗕綘鐨勫悗鍥涗釜瀛楄妭锛屼箣鍚庡啀灏嗚繖涓猼emp1鐨勫厓绱涓涓竴涓杞崲涓鍗佸叚杩涘埗杈撳嚭灏卞ソ锛屾瘮濡傝 for(pos = 0;pos < 4; pos ++)printf("%f ",(float)temp1[pos]);printf("\n");
  • C璇█涓16杩涘埗涔嬮棿鐨勫姞鍑忎箻闄よ繍绠鎬庝箞鍋?
    绛旓細鍙互鍙傝冧笅闈㈢殑浠g爜锛歩nt a,b;scanf("%x%x",&a,&b);printf("%x\n%x\n",a+b,a-b);杈撳叆:9 7 杈撳嚭:10 2
  • C璇█濡備綍瀹氫箟涓涓16杩涘埗鏁
    绛旓細printf("0x%x",a);//16杩涘埗杈撳嚭printf("%llX\n",a);涔熷彲杈撳嚭涓涓崄鍏繘鍒舵暟濡傛灉绾㈣壊閮ㄥ垎澶у啓X鍒欒緭鍑哄崄鍏繘鍒朵负澶у啓瀛楁瘝鍚﹀垯灏忓啓x杈撳嚭涓哄皬鍐欏瓧姣 } 鍙傝冿細鏈澶ф暟瀛楁槸15浣嶏紝娌℃湁瓒呰繃__int64鑳借〃杈剧殑鏈澶ф暟銆俖_int64鏈澶ц兘琛ㄧず16浣嶅崄鍏繘鍒舵暟銆傛墍浠ョ洿鎺ヨ繘琛屽姞鍑忓氨琛屼簡锛岄渶瑕佹敞鎰忕殑鏄緭鍏ヨ緭鍑虹殑鏍煎紡...
  • 鐢C璇█缂栧啓涓涓鍑芥暟瀹炵幇鍗佸叚杩涘埗鏁鑷冲崄杩涘埗鏁扮殑杞崲.鍦ㄤ富鍑芥暟涓緭鍏ュ崄...
    绛旓細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");} ...
  • C璇█ 鍐欎竴涓嚱鏁 杈撳叆涓涓崄鍏繘鍒舵暟 杈撳嚭鐩稿簲鐨勫崄杩涘埗
    绛旓細/ 鍑芥暟锛歝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;...
  • C璇█涓16杩涘埗鐨勮繍绠楅棶棰
    绛旓細鍦ㄨ繖閲 浣犺鏄庣櫧鐨勬槸 璁$畻鏈哄瓨鍏ョ殑鏁版嵁鏄簩杩涘埗 0 1 鎵浠canf("%d",&a);灏辨槸浣犺緭鍏ョ殑涓涓鍗佽繘鍒 姣斿 浣犺緭鍏10锛堣繖杈规槸鍗佽繘鍒舵暟锛 浠栦篃浠h〃10锛堝崄鍏繘鍒讹級 璁$畻鏈哄瓨鍌ㄦ槸 10000scanf("%x",&a);灏辨槸浣犺緭鍏ョ殑涓涓崄鍏繘鍒 姣斿 浣犺緭鍏10锛堟槸杩欒竟鏄鍗佸叚杩涘埗鏁锛 浠栦篃浠h〃8锛堝崄杩涘埗锛 璁$畻鏈...
  • 宸茬煡涓涓16杩涘埗鐨勬暟,姹傝繖涓暟涓1鐨勪釜鏁,鐢C璇█缂栫▼!
    绛旓細int func(unsigned int x){ int countx = 0;while (x){ countx++;x = x & (x-1);} return countx;} 绠楁硶涓嶈В閲婏紝鑷繁鐮旂┒鍚с
  • 扩展阅读:c语言输入16进制的格式 ... 16进制对照表0x ... 16进制在线转换器 ... 16进制计算器 ... c语言16进制转10进制 ... 16进制在线转换工具 ... c语言打印16进制数 ... c语言中16进制怎么表示 ... c语言如何表示16进制数 ...

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