实现一个新浪微博 MID 转换算法
来源:互联网 发布:vb 日期格式转string 编辑:程序博客网 时间:2024/05/23 14:40
新浪微博的消息 ID ( MID ) 有字符型和数字型两种形态,可以互相转换。数字型值是字符型值按照 62 进制转换的结果 。 实现一种单向转换即可 。
提示:
转换对应关系:
2211 1041021 6147026 <-> zF 4mOF pN7A
34 7402967 3316812 <-> y v3QH dUQY
自右起,每 7 位 10 进制数字 对应 4 位 62 进制字符
提示:
转换对应关系:
2211 1041021 6147026 <-> zF 4mOF pN7A
34 7402967 3316812 <-> y v3QH dUQY
自右起,每 7 位 10 进制数字 对应 4 位 62 进制字符
62 进制字典: 0~9 + a~b + A~B
// MIDCoversion.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <Windows.h>#include <vector>#define CONVERSIONNUMBER 62#define CMAX 50#define SEVENTEN 10*10*10*10*10*10*10using namespace std;void PrintNum(ULONGLONG ullSevenNum){ULONGLONG iResult = 0;int iRemain = 0;int iTemp = 0,i = 0;char cTemp;char cTen = 'a';char cTeen = 'A';char cZero = '0';char aResult[CMAX];iResult = ullSevenNum;while(iResult != 0){iRemain = iResult%CONVERSIONNUMBER;iResult = iResult/CONVERSIONNUMBER;if (iRemain >= 0 && iRemain <10){cTemp = cZero + iRemain;}else if (iRemain > 9 && iRemain <36){iTemp = iRemain - 10;cTemp = cTen + iTemp;}else{iTemp = iRemain - 36;cTemp = cTeen + iTemp;}aResult[i] = cTemp;i++;}i--;for (;i>=0;i--){printf("%c",aResult[i]);}}void SepNum(ULONGLONG ullInNum,vector<ULONGLONG> &vecSep){ULONGLONG ullMaxNum = 10;int iRemain = 0;vector<ULONGLONG> vecNeedMinu;ULONGLONG ullAllNum = ullInNum;ULONGLONG ullSevenNum = 0;vecSep.clear();vecNeedMinu.clear();while(ullAllNum != 0){iRemain = ullAllNum%10;ullAllNum = ullAllNum/10;if (iRemain == 0){//第一次进入就是0 , 比如70if (ullMaxNum/10 != 1){ullSevenNum = ullSevenNum + ullMaxNum/10;vecNeedMinu.push_back(ullMaxNum/10);}}else{ullSevenNum = ullSevenNum+iRemain*ullMaxNum/10;}if (ullMaxNum == SEVENTEN/* || ullMaxNum == SEVENTEN*2 || ullMaxNum == SEVENTEN*3*/){vector<ULONGLONG>::iterator iter;for (iter = vecNeedMinu.begin(); iter != vecNeedMinu.end();iter++){ullSevenNum = ullSevenNum - *iter;}vecSep.push_back(ullSevenNum);vecNeedMinu.clear();ullSevenNum = 0;ullMaxNum = 1;}ullMaxNum = ullMaxNum*10;}vecSep.push_back(ullSevenNum);}int _tmain(int argc, _TCHAR* argv[]){ULONGLONG iInNum = 0; cout<<"please put in a number "<<endl;cin>>iInNum;if (iInNum < 0){printf("input number is error");system("pause");return 0;}vector<ULONGLONG> vecSep;SepNum(iInNum,vecSep);vector<ULONGLONG>::reverse_iterator iter;for (iter = vecSep.rbegin(); iter != vecSep.rend();iter++){PrintNum(*iter);}system("pause");return 0;}
- 实现一个新浪微博 MID 转换算法
- 新浪微博地址url字符与mid的相互转换算法及原理
- 新浪微博地址url字符与mid的相互转换算法及原理
- 新浪微博url与mid相互转换(自己总结整理各种语言版本)
- 新浪微博的id和mid互相转换(10进制和62进制转换)
- 新浪微博 ID与MID互转 (62进制)
- 新浪微博mid base62进制转10进制
- C++作业02_01: 新浪微博的消息 ID ( MID ) 有字符型和数字型两种形态,可以互相转换
- 新浪微博created_at字段转换成java算法
- 微博地址url(id)与mid的相互转换
- 微博地址url(id)与mid的相互转换
- 微博地址url(id)与mid的相互转换
- 新浪微博URL中的MID和微博id互转
- 新浪微博 微博mid获取(java 与 javascript版本)
- 实现新浪微博@@@
- 新浪mid与id互转
- Android实现新浪微博
- listview实现新浪微博
- 提高C#编程水平的50个要点
- 小for的Cocos2d-x学习笔记与感悟12之SQLite数据库
- 100 元钱,由二元、一元、五角面币 100 张组成,问各有多少张?
- android的 各种权限,有个印象就好
- jquery的innerHeight在chrome下结果不同原因
- 实现一个新浪微博 MID 转换算法
- IT外企那点儿事(21): 为什么受伤的总是我
- 7 WARNING Signs You Chose the Wrong Job
- 关于memset的使用
- Android: couldn't save which view has focus because the focused view ### has no
- C#实现任意源组播与特定源组播
- 逻辑问题
- Oracle 技术网
- Android移植技术!