二进制长字符串转为大整数(16进制数)
2011-05-30 12:53
204 查看
下面我自己写的代码,把二进制的字符串转为一个大整数,因为本身这个二进制字符串表示的就是一个大整数。
#include <stdio.h> #include <string.h> #define BASE '0' int byte2hex(const char src[], unsigned char dst[], int *length) { int i,j,k; unsigned char temp[8]; if(*length%8 != 0) { printf("Length error,length%8 should be 0!/n"); return -1; } for(i=0,k=0; i< *length; i++) { j = i % 8; temp[j] = ((src[i] - BASE) << (7-j)); if(j == 7) dst[k++] = temp[0]|temp[1]|temp[2]|temp[3]|temp[4]|temp[5]|temp[6]|temp[7]; } *length = *length/8; return 0; } int main() { char* srcx = "0000101011100100110001110111100110001010101000001111000100011001010001110001101111101110000100011000001001011011111001000110001000000010101110110111100111100010101001011000010001000100100101011110100101111100000001001111111101001101111100100101010010001010"; char* srcy = "0111110000000010010000001111100010001111000111001101010011100001011000110101001010100111001111000001011110110111111100010110111100000111001101010011111001010011101000010111011011010110100001001010100111111110000011000110101110110111100110001110100001010111"; unsigned char dst[32]; int length; int rv, i; length = strlen(srcx); rv = byte2hex(srcx, dst, &length); if(rv) return -1; for(i=0; i<length; i++) printf("0x%02x,", dst[i]); printf("/n"); return 0; }
相关文章推荐
- 字符串处理函数:识别一字符串所属的数值常量类型(十六进制、二进制、十进制整数,浮点数)
- C# 整数转二进制字符串
- bin(x) 将整数x转换为二进制字符串
- 字符串处理函数:识别一字符串所属的数值常量类型(十六进制、二进制、十进制整数,浮点数)
- 16进制字符串转为二进制字符串
- 将文件转为二进制字符串
- 写一个函数,将输入的字符串转为整数并输出。
- 16进制字符串转为二进制
- iOS Objective c 16进制字符串转为二进制数组
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- [LeetCode] String to Integer (atoi) 字符串转为整数
- 请编写一个C函数,该函数可以实现将一个整数转为任意进制的字符串输出
- 中文字符串转为long型整数。(输入保证在long的范围内)java实现
- ip字符串转换为 二进制整数
- 将图片转为二进制字符串
- 十进制的正整数,负数, 小数转为二进制.八进制.十六进制的方法 包括原码,反码,补码的介绍
- itoa函数 -- 整数转为字符串
- 字符串转为整数
- 把字符串转为整数
- Linux下将整数格式化成二进制表示的字符串