c#将十进制转64进制
??? //由于用于文件命名,所以將64位中的+轉(zhuǎn)換為=,/轉(zhuǎn)換為_
???? static char[] digits = { ?
??????? '0' , '1' , '2' , '3' , '4' , '5' , ?
??????? '6' , '7' , '8' , '9' , 'a' , 'b' , ?
??????? 'c' , 'd' , 'e' , 'f' , 'g' , 'h' , ?
??????? 'i' , 'j' , 'k' , 'l' , 'm' , 'n' , ?
??????? 'o' , 'p' , 'q' , 'r' , 's' , 't' , ?
??????? 'u' , 'v' , 'w' , 'x' , 'y' , 'z' , ?
??????? 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , ?
??????? 'G' , 'H' , 'I' , 'J' , 'K' , 'L' , ?
??????? 'M' , 'N' , 'O' , 'P' , 'Q' , 'R' , ?
??????? 'S' , 'T' , 'U' , 'V' , 'W' , 'X' , ?
??????? 'Y' , 'Z' , '=' , '_'? , ?
??????? };
??? public static string to64(long number ,int shift) {
?????? ?
???????????? char[] buf = new char[64]; ?
??????? int charPos = 64; ?
??????? int radix = 1 << shift; ?
??????? long mask = radix - 1; ?
??????? do { ?
??????????? buf[--charPos] = digits[(int)(number & mask)]; ?
??????????? number = foo((int)number,shift); ?
??????? } while (number != 0); ?
??????? return new String(buf, charPos, (64 - charPos)); ?
??? }
??? public static int foo(int x, int y)
??? {
??????? int mask = 0x7fffffff; //Integer.MAX_VALUE
??????? for (int i = 0; i < y; i++)
??????? {
??????????? x >>= 1;
??????????? x &= mask;
??????? }
??????? return x;
??? }
轉(zhuǎn)載于:https://www.cnblogs.com/Impulse/p/3723713.html
總結(jié)
以上是生活随笔為你收集整理的c#将十进制转64进制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++ Primer 7.33 练习编写
- 下一篇: char* 和char[] 内存分配的区