#include <stdio.h> /* 十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方; 在16进制中:a(A)=10 b(B)=11 c(C)=12 d(D)=13 e(E)=14 f(F)=15 例如:CE=12*16^1+14*16^0=192+14=206 */ unsigned short int right(unsigned short int num, int n){ return (num<<n) | (num>>(sizeof(num)-n)); } int main(void) { unsigned short int num = 0xFA;// 最多4个 0xFABCD 报错 unsigned short int num2 = 0x2345; //short int 短整型占2个字节 共2*8=16个二进制位 printf("您输入的十六进制数:%#x\n",num); printf("%#x十六进制数转换成十进制为:%d\n",num,num); printf("该十六进制数占二进制位:%d 个位\n",sizeof(num)*8); return 0; }