C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方

Posted 王默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方相关的知识,希望对你有一定的参考价值。

#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的相应次方的主要内容,如果未能解决你的问题,请参考以下文章

10进制转换2进制的互相转换

二进制十进制十六进制相互转换

C语言输入一个整数,截取它对应的二进制位中从右到左的第8-11位(最右边为第0位).

192.168.0.1/16,1/24;192.168.1.1/16,1/24   IP段的意思

2017.9.23

进制转换