1. 程式人生 > >C語言十六進制轉換成十進制:要從右到左用二進制的每個數去乘以16的相應次方

C語言十六進制轉換成十進制:要從右到左用二進制的每個數去乘以16的相應次方

sha print short c語言 sign return 二進制位 sharp clas

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

  

C語言十六進制轉換成十進制:要從右到左用二進制的每個數去乘以16的相應次方