64位整形数转十进制字符串算法

来源:本站
导读:目前正在解读《64位整形数转十进制字符串算法》的相关信息,《64位整形数转十进制字符串算法》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《64位整形数转十进制字符串算法》的详细说明。
简介:函数说明:输入参数,High,Low,分别是要转换的64位数的高32位和低32位,而result保存的是转换后的字符串,因为64位数转换为10进制数后,最多可能有20字节,所以这个指针所指向的空间需要有足够的长度。

#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位整形数转十进制字符串算法》最后刷新时间 2024-03-14 01:05:03,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《64位整形数转十进制字符串算法》该内容的真实性请自行鉴别。