C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方
2018-02-26 23:22
337 查看
#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 */ //右旋转把第一位 放到最后 0x2345 => 0x3452 num左移1位0x3450;即1个16进制位等于4个二进制位 //或上 num右移3位0x0002 相当于3*4=12个二进制位 unsigned short int right(unsigned short int num, int n){ return (num<<n) | (num>>(sizeof(num)*8-n)); } //左转 0x2345=>0x5234 num左移3位(等于12个二进制位) num右移1位(4个二进制位) unsigned short int left(unsigned short int num, int n){ return ( num << (sizeof(num)*8-n)) | (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",num2); printf("%#x十六进制数转换成十进制为:%d\n",num2,num2); printf("该十六进制数占二进制位:%d 个位\n",sizeof(num2)*8); //0x2345占2个字节 0000 0000 0000 0000 16位 printf("%#x右边旋转:%#x\n",num2,right(num2,4)); printf("%#x左边旋转:%#x\n",num2,left(num2,4)); return 0; }
相关文章推荐
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- C语言中的二进制、八进制、十进制、十六进制他们之间的转换方式什么怎样的?
- C语言中的二进制八进制十进制与十六进制之间的转换(转)
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- shell 脚本转换 十六进制 十进制 八进制 二进制
- 关于使用查表法实现十进制到二进制,八进制,十六进制的转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换 .
- 十进制负数转换为二进制、八进制、十六进制的知识分享
- 二进制 八进制 十进制 十六进制的相互转换(精简总结)
- JS中字符问题(二进制/十进制/十六进制及ASCII码之间的转换)
- 二进制、八进制、十进制、十六进制之间的转换
- 将十进制转换为二进制和十六进制
- 栈的应用之二进制转换为十进制,八进制和十六进制
- 二进制、八进制、十进制、十六进制的转换