#i nclude <stdio.h>#i nclude <string.h>code unsigned char mul_str[]={4,2,9,4,9,6,7,2,9,6,0};//2^32 /*------------------------------------------------------------------------------ Name : int2str_64b Deion : convert 64bit integer to string Parameters : Input : unsigned long High: Higher 32bits of the integer unsigned long Low : Lower 32bits of the integer Output : unsigned char *result : the pointer to the result, max_length = 21 bytes Return : length of the string------------------------------------------------------------------------------*/unsigned char int2str_64b(unsigned long High, unsigned long Low, unsigned char *result){unsigned char tmp_str[11];unsigned char i, j, k, inc, tmp;//high * 2^32memset(result, 0, 21);sprintf(tmp_str, "%010lu", High); for(i = 0; i < 10; i++) tmp_str -= '0'; for(i = 10; i > 0; i--){ for(j = 10; j > 0; j--){ k = i + j - 1; inc = 0; tmp = tmp_str[i - 1] * mul_str[j - 1] + result[k]; inc = tmp / 10; result[k] = tmp % 10; while(inc != 0){ k--; tmp = result[k] + inc; result[k] = tmp % 10; inc = tmp / 10; } } } // result + lowsprintf(tmp_str, "%010lu", Low);for(i = 0; i < 10; i++) tmp_str -= '0'; inc = 0;for(i = 10; i > 0; i--){ tmp = result[i + 9] + tmp_str[i - 1] + inc; inc = tmp / 10; result[i + 9] = tmp % 10; }k = 10;while(inc != 0){ k--; tmp = result[k] + inc; inc = tmp / 10; result[k] = tmp % 10; } //remove addtional 0sfor(i = 0;i < 19; i++) if(result != 0) break;for(j = i; j < 20; j++){ result[j - i] = result[j] + '0';}result[20 - i] = 0;return (20 - i);}//---------------------------------------------------------------------------------------------
导读:目前正在解读《64位整形数转十进制字符串算法》的相关信息,《64位整形数转十进制字符串算法》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《64位整形数转十进制字符串算法》的详细说明。
简介:函数说明:输入参数,High,Low,分别是要转换的64位数的高32位和低32位,而result保存的是转换后的字符串,因为64位数转换为10进制数后,最多可能有20字节,所以这个指针所指向的空间需要有足够的长度。
提醒:《64位整形数转十进制字符串算法》最后刷新时间 2024-03-14 01:05:03,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《64位整形数转十进制字符串算法》该内容的真实性请自行鉴别。