日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

muduo:高效整型转换为字符串

發布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 muduo:高效整型转换为字符串 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

? ? ? ? ? muduo中有一段高效的整形轉換為字符串的算法,這里記錄一下(Efficient Integer to String Conversions, by Matthew Wilson)

#include <stdio.h> #include <iostream> #include<algorithm>const char digits[] = "9876543210123456789"; const char* zero = digits + 9;//zero兩邊對稱,因為余數可能為負數const char digitsHex[] = "0123456789ABCDEF";//十六進制時使用// Efficient Integer to String Conversions, by Matthew Wilson. void convert(char buf[], int value)//把int轉為字符串, {int i = value;char* p = buf;do{int lsd = static_cast<int>(i % 10);i /= 10;*p++ = zero[lsd];} while (i != 0);if (value < 0){*p++ = '-';}*p = '\0';std::reverse(buf, p);//逆轉[buf p) }void convertHex(char buf[], uintptr_t value)//轉為十六進制字符串 {uintptr_t i = value;char* p = buf;do{int lsd = static_cast<int>(i % 16);i /= 16;*p++ = digitsHex[lsd];} while (i != 0);*p = '\0';std::reverse(buf, p); }int main() {printf("zero =%c\n",zero[-3]);int a = -123;char str1[10] = {0};convert(str1,a);printf("str1 =%s\n",str1);int b = 0x111;char str2[10] = {0};convertHex(str2,b);printf("str2 =%s\n",str2);return 0; }

運行:zero =3
? ? ? ? ? ?str1 =-123
? ? ? ? ? ?str2 =111

注意zero的用法,這里的整形可能為負數

總結

以上是生活随笔為你收集整理的muduo:高效整型转换为字符串的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。