从品牌网站建设到网络营销策划,从策略到执行的一站式服务
Base58编码由58个数字和大小写字母组成,BitCoin源码中定义及注释如下:
成都创新互联公司于2013年开始,是专业互联网技术服务公司,拥有项目成都网站设计、成都网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元漯河做网站,已为上家服务,为漯河各地企业和个人服务,联系电话:13518219792
/** All alphanumeric characters except for "0", "I", "O", and "l"*/
static const char* pszBase58 = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
如unsigned char ucData[4] = { 0x39, 0x3a, 0x3b, 0x3c };的base58编码过程如下:
1、先计算ucData开头为0x00的个数 zeros ,这里zeros = 0;
while (pbegin != pend && *pbegin == 0) {
pbegin++;
zeroes++;
}
2、跳过开头的zeros个0x00,计算所需要的缓存
int size = (pend - pbegin) * 138 / 100 + 1; // log(256) / log(58), rounded up.
3、256进制转58进制的计算
std::vector
// Process the bytes.
while (pbegin != pend) {
int carry = *pbegin;
int i = 0;
// Apply "b58 = b58 * 256 + ch".
for (std::vector
(carry != 0 || i < length) && (it != b58.rend()); it++, i++) {
carry += 256 * (*it);
*it = carry % 58;
carry /= 58;
}
assert(carry == 0);
length = i;
pbegin++;
}
4、输出编码结果
先在字符串前补上zeros 个1 ,后面的依次缀加DstByte对应的 pszBase58 字符
成都网站建设公司地址:成都市青羊区太升南路288号锦天国际A座10层 建设咨询028-86922220
成都快上网科技有限公司-四川网站建设设计公司 | 蜀ICP备19037934号 Copyright 2020,ALL Rights Reserved cdkjz.cn | 成都网站建设 | © Copyright 2020版权所有.
专家团队为您提供成都网站建设,成都网站设计,成都品牌网站设计,成都营销型网站制作等服务,成都建网站就找快上网! | 成都网站建设哪家好? | 网站建设地图