通过移位把十进制转换成二进制和十六进制
2012-09-24 21:49
375 查看
这个试题可以充分考到个人对以为和与的操作
我对上面的程序做了一定的改进,比较容易理解
char *int_to_bit(long data) { int bit_num=sizeof(long)*8; char *temp_bit=(char*)malloc(bit_num+1); temp_bit[bit_num]='\0'; for (int i=0;i<bit_num;i++) { temp_bit[i]=data&(1<<(31-i)); temp_bit[i]=temp_bit[i]>>(31-i); if (temp_bit[i]==0) { temp_bit[i]='0'; } else { temp_bit[i]='1'; } } return temp_bit; } //intto16 char *int_to_16(unsigned long data) { char* buffer = (char*)malloc(11); buffer[0] = '0'; buffer[1] = 'x'; buffer[10] = '\0'; char *temp=buffer+2; int d=0x0000000f; for (int i=0;i<8;i++) { temp[i]=(data>>(28-4*i))&d; temp[i] = temp[i] >= 0 ? temp[i] : temp[i] + 16; //如果得到负值数 temp[i] = temp[i] < 10 ? temp[i]+48 : temp[i] + 55; //查看ascii码对应的数值 } return buffer; // }
我对上面的程序做了一定的改进,比较容易理解
char *int_to_bit(long data) { int bit_num=sizeof(long)*8; char *temp_bit=(char*)malloc(bit_num+1); temp_bit[bit_num]='\0'; //d=0; int d; for (int i=0;i<bit_num;i++) { d=(data>>(31-i)&(1)); //temp_bit[i]=temp_bit[i]>>(31-i); if (d==0) { temp_bit[i]='0'; } else { temp_bit[i]='1'; } } return temp_bit; } //intto16 char *int_to_16(unsigned long data) { char* buffer = (char*)malloc(11); buffer[0] = '0'; buffer[1] = 'x'; buffer[10] = '\0'; char *temp=buffer+2; int d=0x0000000f; int d1; for (int i=0;i<8;i++) { d1=(data>>(28-4*i))&d; // temp[i] = temp[i] >= 0 ? temp[i] : temp[i] + 16; //如果得到负值数 // temp[i] = temp[i] < 10 ? temp[i]+48 : temp[i] + 55; //查看ascii码对应的数值 if (d1<10) { temp[i]=d1+'0'; } else { temp[i]=d1+55; } } return buffer; // }
相关文章推荐
- 使用移位操作把十进制转换为二进制与十六进制字符串输出
- 通过移位把十进制转换成二进制的一个尝试
- 使用移位操作把十进制转换为二进制与十六进制字符串输出
- Python 进制互相转换(二进制、十进制和十六进制)
- 二进制、八进制、十进制、十六进制之间转换
- Java中二进制、十进制、十六进制及ASCII码与String及字节数组与十六进制之间的转换
- Java 二进制、八进制、十六进制与十进制之间的转换
- 十进制负数转换为二进制、八进制、十六进制的知识分享
- C语言十六进制转换成十进制:要从右到左用二进制的每个数去乘以16的相应次方
- C语言中字符串如何转换为二进制、八进制、十进制、十六进制
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- C#中二进制、十进制和十六进制互相转换的方法
- 二进制、八进制、十进制、十六进制之间的转换
- 二进制、八进制、十进制、十六进制之间转换
- [JAVA]二进制,八进制,十六进制,十进制间进行相互转换
- ubuntu 下二进制 ,十进制,十六进制的转换
- 二进制、十进制、十六进制的转换
- 二进制,十进制,八进制,十六进制之间的转换
- 二进制、十进制、十六进制相互转换
- python中各种基础类型的转换,二进制,八进制,十进制,十六进制