首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将数据编码为十六进制,并在Python2.7的末尾得到一个L。为什么?

将数据编码为十六进制,并在Python2.7的末尾得到一个L的原因是因为在Python2.7中,整数类型的表示方式有两种:普通整数和长整数。普通整数使用固定的4个字节来表示,而长整数则可以动态地分配所需的字节数来表示更大的整数。

在Python2.7中,当一个整数超过普通整数的表示范围时,它会自动转换为长整数。为了区分普通整数和长整数,Python2.7在长整数的末尾添加了一个L作为标识符。

当将数据编码为十六进制时,每个十六进制数字对应4个二进制位,因此编码后的数据会占用更多的空间。如果编码后的数据超过了普通整数的表示范围,Python2.7会将其自动转换为长整数,并在末尾添加L作为标识符。

需要注意的是,Python3中已经移除了长整数的概念,统一使用普通整数来表示任意大小的整数,因此在Python3中不会出现末尾的L标识符。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

加密与安全_探索常用编码算法

ASCII编码是根据英语字母表中的顺序进行编码的,因此大写字母’A’在ASCII编码中是排在字母表的第一个位置,其对应的十进制数值为65,换算成十六进制即为0x41。...Base64编码 Base64 编码是一种将二进制数据编码为文本格式的方法,它可以将任意长度的二进制数据转换为纯文本,并且只包含一组特定的字符集,包括 A~Z、a~z、0~9、+、/、=。...将每个整数使用查表的方式映射到对应的字符集合中的字符。 将得到的字符拼接成一个字符串作为 Base64 编码结果。...由于其将二进制数据编码为文本的特点,使得它可以直接作为文本传输,而无需担心编码后的数据会包含特殊字符或控制字符。...这种情况下,需要对输入的末尾补一个或两个0x00,编码后,在结尾加一个=表示补充了1个0x00,加两个=表示补充了2个0x00,解码的时候,去掉末尾补充的一个或两个0x00即可。

14900

Base64 原理

然而这个结果是不正确的,随便去找一个工具输入转换看看都知道,最终结果为 U0g=. 这也说明在输入的字符不足 3 个时,就不是按照之前的方式来处理了。 不足三个字节如何处理?...但是可以看到最后一组的比特位不足 6 个,在这种情况下,会进行末尾(低位)补0的操作。补完之后就会变成010100、110100、100000。...将前面的两组转换成字符,结果为 Uw,再结合填充字符,最终的结果为 Uw==。 关于编码,有人可能会说,你这都是英文,英文转换成十进制再到十六进制很方便,对比 ASCII 码就行,那要是中文呢?...所以,在解密中,我们每次需要处理 4 个字符,将这 4 个字符编码之后转换成十进制,再转换成二进制,不足 6 位的高位补0,然后将 6 个比特一组的二进制数按原顺序重新分成每 8 个比特一组,也就是一个字节一组...将分组好的比特转换成十六进制,得到53、2e、48 最后将十六进制转换成字母得到S、.

2.5K20
  • Base-x 编码的奥秘

    具体操作如下: 将 3 字节的数据,先后放入一个 24 位的缓冲区中,先来的字节占高位。数据不足 3 字节的话,缓冲器中剩下的比特用 0 补足。...Base58 的主要职责是将大整数表现成文本,它是由中本聪在 Bitcoin 中首先引入进来的。为什么要这样使用呢?...我们第一次用 111/10,得到的余数为1,便是个位上的数;再次用 11/10,得到的余数为1,便是十位上的数;最后用 1/10 得到的余数为 1,就是百位上的数。...类比可得,上例中计算 10 这个数字的二进制时,第一次用 10/2,得到的余数 0 便是最低位上的数,得到的商为 5,则是 10 这个数的二进制 1010 的高三位(101),依次类推即可得到不同数位上的二进制数了...补充 Base58Check 就是将双重 hash RIPEMD 之后的公钥地址的头4个字节作为校验值放到末尾,然后进行 Base58,不过需要关注前导零。

    1.2K40

    【愚公系列】2021年12月 攻防世界-进阶题-MISC-061(签到题)

    总结 Base64 Base64编码是使用64个可打印ASCII字符(A-Z、a-z、0-9、+、/)将任意字节序列数据编码成ASCII字符串,另有“=”符号用作后缀用途。...Base64将输入字符串按字节切分,取得每个字节对应的二进制值(若不足8比特则高位补0),然后将这些二进制数值串联起来,再按照6比特一组进行切分(因为2^6=64),最后一组若不足6比特则末尾补0。...J K L M N O P Q R S T U V W X Y Z 栅栏密码 栅栏密码是一种简单的移动字符位置的加密方法,规则简单,容易破解。...栅栏密码的加密方式:把文本按照一定的字数分成多个组,取每组第一个字连起来得到密文1,再取每组第二个字连起来得到密文2……最后把密文1、密文2……连成整段密文。...例如: 明文:栅栏密码加密规则示例 每组字数:5 按照字数先把明文分成: 栅栏密码加 密规则示例 先取每组第一个字:栅密 再取每组第二个字:栏规 最后得到“栅密栏规密则码示加例”。

    71560

    Python3配置和入坑.md

    Shell命令行 ctrl + l Copy:clearwindow.py文件,并放在Python安装目录PythonX\Lib\idlelib下面(我用的是python3.4.3所以路径是:D:\Program...clear-window=l> (2)Python 多版本共存 我常用的方式就是一个加入PATH之中,另外一个版本不加入python之中;但是痛苦在于每次执行需要指定绝对路径...,且进行pip下载的时候也需要在指定目录执行; 解决方法: #Python 自带的解决方法 当安装python2.7以后直接调用 pip 执行的是 Python2.7 的 pip,如何解决?...#问题3:如果你的系统中同时存在 Python2.7 和 Python3.4,那么在命令行模式下输入 Python,默认是执行 Python2.7: #因为 Python 在命令行模式下本身就是设置两者可以兼容...在注册表:HKEY_CLASSES_ROOT\Python.File\shell\ 中新建项“通过 Python2.7运行”,再新建项“command”,设置默认值为:"C:\Python27\python.exe

    19420

    Hacker基础之Python篇:一、环境安装和基础知识

    ) 新手写代码时候经常就会莫名其妙,明明就是照着书上抄的代码,和书上一模一样,为什么总是运行出错 (黑人疑问脸 )???...Linux: Linux已经自带了包括Python2.7和Python3.5,所以如果你安装了一个Linux的虚拟机或者物理机,这里的安装就会非常非常非常简单(这里你什么也不用做)。...当按下回车键之后,会得到下面的输出: 这里说明一下,在Python2中,print不是个函数,也就是你可以这样输入一个字符串: 注意,上面的是Python2 但是在Python3中,print已经被成了一个函数...,并在下面显示执行结构,前提是命令有回显 如果我们随便输点什么内容,试试看: Python的解释器就会不明白你的输入,并且释出了一个NameError。...十六进制和八进制 在Python中,十六进制的数字可以这样书写: 0xAF 而八进制的数字可以如下书写,注意第二个字母为o,不是0: 0o010 0x07.

    80660

    Python--sys

    sys.path: 获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到。...sys.setdefaultencoding(): 设置系统默认编码,执行dir(sys)时不会看到这个方法,在解释器中执行不通过,可以先执行reload(sys),在执行 setdefaultencoding('utf8'),此时将系统默认编码设置为.../local/lib/python2.7/site-packages', '/usr/lib/python2.7/site-packages'] 4.sys.exit(n) 功能:执行到主程序末尾,...解释器自动退出,但是如果需要中途退出程序,可以调用sys.exit函数,带有一个可选的整数参数返回给调用它的程序,表示你可以在主程序中捕获对sys.exit的调用。...(0是正常退出,其他为异常) #!

    83120

    【干货】Python基础语法之变量类型

    解决方法为只要在文件开头加入 # -- coding: UTF-8 -- 或者 #coding=utf-8 就行了 ? 注意:#coding=utf-8 的 = 号两边不要空格。...注意:Python2.7可以不加括号,但Python3.x都需要在print后加括号。 假设你已经设置了 Python 解释器 PATH 变量。...print输出 print 默认输出是换行的,如果要实现不换行需要在变量末尾加上逗号 , ? 03 Python变量类型 Python标准数据类型 在内存中存储的数据可以有多种类型。...: int(符号整型) long(长整型[也可以代表八进制和十六进制]) float(浮点型) complex(复数) 长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。...这些函数返回一个新的对象,表示转换的值。 ? 数据分析1480 ? 长按扫码关注我

    71110

    探索一下进制转换 (Python 实现源码)

    为什么在计算机领域中,十六进制用途会如此广泛呢? 给大家看一个对比: 当数据比较大的时候,二进制显然不再那么使用,再看使用十六进制,就简短很多。...这也是老师教我们的方法,也是我们第一次接触进制转换的时候,用目标数 num 对 2求 余数,直到 商为 0 的时候,结束,然后将余数反向组合输出,及为我们所求的 2 进制数。...和 余数、这是 Python 的特有的一个内置方法,分别可以到商 及 余数 l.append(str(reminder)) # 把获得的余数 存入字符串 if num...== 0: # 对应了前面的话,当商为 0时,就结束啦 return "".join(l[::-1]) # 对列表中的字符串进行逆序拼接,得到一个二进制字符串 3.2 十进制转八进制...:-1]) # 对列表中的字符串进行逆序拼接,得到一个二进制字符串 3.3 十进制转十六进制 前面说过,十六进制相比二进制,八进制会复杂一点,但是方法是一样的 # 十进制转十六进制(这个相对麻烦一点,

    79110

    Base64 原理

    然而这个结果是不正确的,随便去找一个工具输入转换看看都知道,最终结果为 U0g=. 这也说明在输入的字符不足 3 个时,就不是按照之前的方式来处理了。 不足三个字节如何处理?...但是可以看到最后一组的比特位不足 6 个,在这种情况下,会进行末尾(低位)补0的操作。补完之后就会变成010100、110100、100000。...将前面的两组转换成字符,结果为 Uw,再结合填充字符,最终的结果为 Uw==。 关于编码,有人可能会说,你这都是英文,英文转换成十进制再到十六进制很方便,对比 ASCII 码就行,那要是中文呢?...所以,在解密中,我们每次需要处理 4 个字符,将这 4 个字符编码之后转换成十进制,再转换成二进制,不足 6 位的高位补0,然后将 6 个比特一组的二进制数按原顺序重新分成每 8 个比特一组,也就是一个字节一组...将分组好的比特转换成十六进制,得到53、2e、48 最后将十六进制转换成字母得到S、.

    75821

    WEB开发中的字符集和编码

    tips: PHP中我们可以使用ord($char)来得到一个字符的ASCII码; 可以用chr($int) 来得到得到对应ASCII数值的字符; ANSI编码 美国人发明了计算机,并将他们最常用的字符以一个字节存入了计算机...标准的 GBK 编码,数据库中使用 Unicode 的不同的编码方式存储,网页浏览器又以不同编码来解析,统一为 UTF-8 进行数据编码即可解决这类问题。...字符; 如 UTF-8(三个字节表示一个中文) 中文 ‘琪’ 转 base64 的过程为 转换为十六进制表示为 e790aa ; 每个十六进制字符转换为4个二进制bit为 11100111 10010000...二个字节的情况:将这二个字节的 16 bit 分为三组,那么最后一组只有 4 bit (16 % 6 = 4); 在这 4 个 bit 末尾添加 2 个 0 同样凑成 6 bit;再在末尾补上一个=号标识补位...,以便于解码; 一个字节的情况:将这一个字节一共 8 bit 分为两组,那么最后一组只有 2 bit (8 % 6 = 2); 在这 2 个 bit 末尾添加 4 个 0 同样凑成 6 bit;再在末尾补上

    2.1K50

    【进制转换】《进制大乱斗,谁才是真正的赢家!》

    进制转换方法 3.1 十进制转二进制 将一个十进制数转换为二进制数,可以使用短除法。具体步骤如下: 用2除十进制数,记录余数。 将商继续除以2,记录余数。 重复以上步骤,直到商为0。...3.2 二进制转十进制 将一个二进制数转换为十进制数,可以按权展开法计算。具体步骤如下: 将二进制数从右至左,依次乘以2的幂次。 将所有结果相加,即为对应的十进制数。...将商继续除以16,记录余数。 重复以上步骤,直到商为0。 将所有余数按倒序排列,即为对应的十六进制数。...6.2 数据编码 在数据编码中,十六进制常用于表示二进制数据。它便于查看和编辑二进制数据,特别是在调试和数据分析中。 6.3 数字电路设计 在数字电路设计中,进制转换帮助设计和分析电路的行为。...通过本文的详细解析,希望您能够更好地理解和掌握进制转换的知识,并在实际应用中灵活运用。

    15210

    QR 数据编码详解(二)

    每种编码模式针对其字符,不断优化以产生最短的编码二进制串。在此过程中它们采用的编码方法是不同的,本篇将主要解释数据编码过程。 第一步:选择纠错级别 在数据编码前,要先选择纠错级别。...容量上限 最大容量的 QR 二维码是 40-L(版本 40,纠错级别L)。下表展示了四种编码模式下 40-L QR 二维码的容量。这里容量指一个独立的 QR 二维码所能携带的最大字符数。...将字符串中字符转化为十六进制字节再转化为 8 位二进制字节: ?...(最后一列),将总数乘以 8 即可得到该版本和纠错级别下需要的总位数。...至此,我们得到四部分编码: ? 继续添加 0 使长度为 8 的倍数 在添加完终止符后,如果字符串长度不是 8 的整倍数,首先继续在字符串右边填充 0 使得字符串长度被 8 整除。

    2.1K20

    【基础知识】497- 一文读懂Base64编码

    一、为什么要使用 base64 我们知道一个字节可表示的范围是 0 ~ 255(十六进制:0x00 ~ 0xFF), 其中 ASCII 值的范围为 0 ~ 127(十六进制:0x00 ~ 0x7F);...而超过 ASCII 范围的 128~255(十六进制:0x80 ~ 0xFF)之间的值是不可见字符。...在 MIME 格式的电子邮件中,base64 可以用来将二进制的字节序列数据编码成 ASCII 字符序列构成的文本。使用时,在传输编码方式中指定 base64。...如果要编码的字节数不能被 3 整除,最后会多出 1 个或 2 个字节,那么可以使用下面的方法进行处理:先使用 0 字节值在末尾补足,使其能够被 3 整除,然后再进行 base64 的编码。...接着我们来看另一个示例,假设需编码的字符串为 BC,其所占字节数为 2,不能被 3 整除,需要补 1 个字节,具体如下图所示: ?

    1.9K21

    二维码知识介绍

    三、数据编码与实例 针对不同的数据,QR码设计了不同的数据编码编码方式,我们可以根据数据的种类选择合适的编码方式进行编码。...1的二维码在L级别下可储存25个字符,在H级别下只能储存10个字符。...00010001 10100101 00100100 11010100 11000001 11101101 00110110 11000111 10000111 00101100 01010101 第四步:将最终的数据编码按顺序放入二维码中...第五步:添加格式信息和进行掩码运算 得到的图像还需要对数据区进行掩码运算,掩码运算的目的是让图像中黑色和白色方块分布的更加均匀一些,便于解码 有以下几种掩码运算,相应的标识和变换方式见图11,二维码的左上角的坐标为...得到纠错码为                             :011 0101 1001 格式信息为                                :00011 1101011001

    2.9K100

    Node加密模块:crypto

    互联网的时代,用户个人信息数据泄露的情况屡屡发生,我们不得不重视数据的安全。而Node中的crypto模块为我们提供了数据加密的功能,下面简单介绍下crypto的使用。...hash ---- 通过hash算法将原始数据加密为二进制值,原始数据不同,加密的结果肯定不同,而且过程不可逆,也就是说不能解密,一般用于登录验证等场景。.../使用update方法输入需要加密的数据 hash.update('some data to hash'); //使用digest方法将加密的结果转码为十六进制 console.log(hash.digest...('hex')); hmac ---- 与hash类似,加密数据且不可逆,但是除了要指定md5、sha1、sha256等算法外,还需要指定一个任意的字符串,由此生成加密的结果,这也就意味着比hash更安全...示例: const crypto = require('crypto'); //此处多了一个自定义的字符串‘a secret’,其余部分与hash相同 const hash = crypto.createHmac

    1.3K31

    一文读懂Base64编码

    一、为什么要使用 base64 我们知道一个字节可表示的范围是 0 ~ 255(十六进制:0x00 ~ 0xFF), 其中 ASCII 值的范围为 0 ~ 127(十六进制:0x00 ~ 0x7F);而超过...ASCII 范围的 128~255(十六进制:0x80 ~ 0xFF)之间的值是不可见字符。...在 MIME 格式的电子邮件中,base64 可以用来将二进制的字节序列数据编码成 ASCII 字符序列构成的文本。使用时,在传输编码方式中指定 base64。...如果要编码的字节数不能被 3 整除,最后会多出 1 个或 2 个字节,那么可以使用下面的方法进行处理:先使用 0 字节值在末尾补足,使其能够被 3 整除,然后再进行 base64 的编码。...接着我们来看另一个示例,假设需编码的字符串为 BC,其所占字节数为 2,不能被 3 整除,需要补 1 个字节,具体如下图所示: ?

    2.4K20
    领券