Python字符串转数字
import binascii s = 'test123456test' str_16 = binascii.b2a_hex(s.encode('utf-8')) # 字符串转16进制 print(str_16) def baseN(num, b): return ((num == 0) and "0") or \ (baseN(num // b, b).lstrip("0") + "0123456789abcdefghijklmnopqrstuvwxyz"[num % b]) num_10 = int(str_16, 16) # 16进制转10进制 print(num_10) str_32 = baseN(num_10, 32) # 10进制转32进制 print(str_32) num_10_2 = int(str_32, 32) # 32进制转10进制 print(num_10_2) num_16 = hex(num_10) # 10进制转16进制数 print(num_16) ss = str_16.decode('hex') # 16进制串转字符串 print(ss)
执行结果
7465737431323334353674657374 2360797289681380981751517517542260 1q6asrk64p36d1l6pq6asrk 2360797289681380981751517517542260 0x7465737431323334353674657374L test123456test
10进制转n进制
def base10toN(num,n): """Change a to a base-n number. Up to base-36 is supported without special notation.""" num_rep={10:'a', 11:'b', 12:'c', 13:'d', 14:'e', 15:'f', 16:'g', 17:'h', 18:'i', 19:'j', 20:'k', 21:'l', 22:'m', 23:'n', 24:'o', 25:'p', 26:'q', 27:'r', 28:'s', 29:'t', 30:'u', 31:'v', 32:'w', 33:'x', 34:'y', 35:'z'} new_num_string='' current=num while current!=0: remainder=current%n if 36>remainder>9: remainder_string=num_rep[remainder] elif remainder>=36: remainder_string='('+str(remainder)+')' else: remainder_string=str(remainder) new_num_string=remainder_string+new_num_string current=current/n return new_num_string
进阶版
def baseN(num, b): return ((num == 0) and "0") or \ (baseN(num // b, b).lstrip("0") + "0123456789abcdefghijklmnopqrstuvwxyz"[num % b])
64进制
def encode_b64(n): table = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_' result = [] temp = n if 0 == temp: result.append('0') else: while 0 < temp: result.append(table[temp % 64]) temp /= 64 return ''.join([x for x in reversed(result)]) def decode_b64(str): table = {"0": 0, "1": 1, "2": 2, "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9, "a": 10, "b": 11, "c": 12, "d": 13, "e": 14, "f": 15, "g": 16, "h": 17, "i": 18, "j": 19, "k": 20, "l": 21, "m": 22, "n": 23, "o": 24, "p": 25, "q": 26, "r": 27, "s": 28, "t": 29, "u": 30, "v": 31, "w": 32, "x": 33, "y": 34, "z": 35, "A": 36, "B": 37, "C": 38, "D": 39, "E": 40, "F": 41, "G": 42, "H": 43, "I": 44, "J": 45, "K": 46, "L": 47, "M": 48, "N": 49, "O": 50, "P": 51, "Q": 52, "R": 53, "S": 54, "T": 55, "U": 56, "V": 57, "W": 58, "X": 59, "Y": 60, "Z": 61, "-": 62, "_": 63} result = 0 for i in xrange(len(str)): result *= 64 result += table[str[i]] return result
Java字符串转数字
BigInteger integer = new BigInteger(hexString.toString(), 16); integer.toString(32);
import java.math.BigInteger; public class Main { public static void main(String[] argv) throws Exception { BigInteger bi = new BigInteger("1023"); bi = new BigInteger("1111111111", 2); String s = bi.toString(2); System.out.println(s); bi = new BigInteger("1000", 8); System.out.println(s = bi.toString(8)); bi = new BigInteger("1023"); s = bi.toString(); System.out.println(s); bi = new BigInteger("3ff", 16); s = bi.toString(16); System.out.println(s); } }
以上这篇Python任意字符串转16, 32, 64进制的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
假设你想将一个整数转换为一个二进制和十六进制字符串。例如,将整数 10 转换为十进制字符串表示为 10,或将其字符串表示为二进制 1010。虽然有很多算法来解决这个问题,包括在栈部分讨论的算法,但递归的解决方法非常优雅。 让我们看一个十进制数 769 的具体示例。假设我们有一个对应于前 10 位数的字符序列,例如 convString =“0123456789”。 通过在序列中查找,很容易将小于
本文向大家介绍C# 16 进制字符串转 int的方法,包括了C# 16 进制字符串转 int的方法的使用技巧和注意事项,需要的朋友参考一下 最近在写硬件,发现有一些测试是做 16 进制的字符串,需要把他转换为整形才可以处理。 本文告诉大家如何从 16 进制转整形。 如果输入的是 0xaa 这时转换 int 不能使用 Parse 不然会出现异常 如果需要转换十六进制就需要使用 Convert 才可以
问题内容: 是否有任何固定的Python方法将Python中的Integer(或Long)转换为二进制字符串? Google上有无数的dec2bin()函数…但是我希望可以使用内置函数/库。 问题答案: Python的字符串格式方法可以采用格式规范。
本文向大家介绍Java字符串转成二进制码的方法,包括了Java字符串转成二进制码的方法的使用技巧和注意事项,需要的朋友参考一下 Java将字符串转成二进制码,具体内容如下 输出结果为:111001110001011 1001011011101010 Java将二进制码转成字符串 根据Unicode码表,将二进制码转换成字符 1、先将二进制转换成十六进制 111001110001011 -->0
问题内容: 我想将十六进制字符串转换为二进制字符串。例如,十六进制2是0010。下面是代码: 但是,这仅适用于十六进制0-9;它不适用于十六进制A-F,因为它使用。谁能增强它? 问题答案: 您需要告诉Java int是十六进制的,如下所示:
问题内容: 标题 有没有一种方法可以将任意字符串映射到十六进制颜色代码。我尝试使用字符串哈希码计算字符串的十六进制数。现在,我需要将此十六进制数字转换为十六进制颜色代码范围内的六位数。有什么建议 ? 问题答案: 如果您不太在乎颜色的“含义”,则可以将int的位数拆分(将第一个仅删除RGB而不是ARGB)