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

【python系统学习16】编码基础知识

除了0、1这些阿拉伯数字,像a、b、c这样的52个字母(包括大小写),还有一些常用的符号(例如*、#、@等)在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,理论上每个人都可以有自己的一套规则...统一规定了常用符号用哪些二进制数来表示。 因为英文字母、数字再加上其他常用符号,也就100来个,因此使用7个比特位(最多表示128位)就够用了,所以一个字节中被剩下的那个比特位就被默认为0。...它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。而当字符在ASCII码的范围时,就用一个字节表示,所以UTF-8还可以兼容ASCII编码。...Unicode与UTF-8这种暧昧的关系一言以蔽之:Unicode是内存编码的规范,而UTF-8如何保存和传输Unicode的手段。...-8')) # b'\xe5\xb0\x8f\xe7\x9f\xb3\xe5\xa4\xb4' 将上述人类语言编码得到机器语言后的打印结果在注释里。

62210
您找到你想要的搜索结果了吗?
是的
没有找到

C++系列-第1章顺序结构-9-字符类型char

二进制转十进制:要从右到左用二进制的每个数去乘以2的相应次方 二进制的11111111=127+1*26+125+……1*20=128+64+32+16+8+4+2+1=255 所以一个字节表示无符号整数可以表示十进制的...案例:字符转换 下面是一个简单的案例,它演示了如何将小写字母转换为大写字母。这个程序会提示用户输入一个小写字母,然后程序将其转换为大写字母并显示结果。...然后,我们通过将字符的ASCII码值加上偏移量来得到加密后的字符,并打印出来。接着,我们通过从加密后的字符的ASCII码值中减去相同的偏移量来得到解密后的字符,并打印出来。...在main函数中,我们首先提示用户输入要加密的文本和一个整数偏移量。然后,我们调用encrypt函数来加密文本,并打印出加密后的结果。...接着,我们调用decrypt函数来解密文本,并打印出解密后的结果。 请注意,这个加密算法非常简单,并不适合真正的安全加密需求。在实际应用中,加密通常会使用更复杂的算法和安全的密钥。

12610

计算机萌新的成长历程——初识C语言8

printf("%c\n", '\123');//将'\123'以字符的形式打印出来; printf("%d\n", '\123');//将'\123'以整数(十进制)的形式打印出来; printf...("%c\n", '\x45');//将'\x45'以字符的形式打印出来; printf("%d\n", '\x45');//将'\x45'以整数(十进制)的形式打印出来; return 0; }...打印结果如下图所示: 在说明这个结果之前,首先我们先要知道八进制和十六进制如何转化为十进制,转化过程如下: \123——八进制123转化为十进制=1×8^2+2×8^1+3×8^0=64+16+3=83...并不是所有的字符都能被转义) 2.ASCII码值是一套通过将数字、字母、符号十进制数值(0~127)进行编号,然后计算机将其转变成二进制数值来将其表示的标准; 3.八进制和十六进制转化成十进制的方式就是...c:\Program Files\VS\test\x32\228\test.c 2.如何编写代码能将这个文件夹的字符串以字符的形式打印出来? 这两个问题的答案我会在下篇内容里公示出来,咱们下一篇见。

14630

第五节(信息读写基础)

本次将介绍以下内容: ●C语言的输入和输出语句基础 ●如何使用printf()和puts() 库函数在屏幕上显示信息 ●如何格式化在屏幕上显示的信息 ●如何使用scanf() 库函数从键盘读取用户输入的数据...转换说明告诉printf()函数如何解译待打印的变量。在上面的示例中,转换说明是%d。%d告诉printf()将myNumber变量解译成有符号十进制整数。...在main()函数中,第14行和第15行的printf()中演示了如何通过转义序列打印问号、单引号和双引号。...例如,如果要打印一个有符号十进制整型(int 和long类型)变量,就要使用%d转换说明; 对于无符号十进制整型(unsigned int 和unsigned long )变量,要使用%u转换说明; 对于浮点型...转换说明 含义 类型转换 %c 单个字符 char %d 有符号十进制整型 int  、 short %1d 有符号十进制长整型 long %f 十进制浮点型 float  、 double %s 字符串

16220

JAVA浮点数看这一篇就够了

我们不妨来简单思考一下: 我们知道输入的这两个浮点数只是我们人类肉眼所看到的具体数值,是我们通常所理解的十进制数,但是计算机底层在计算时可不是按照十进制来计算的,学过基本计组原理的都知道,计算机底层最终都是基于像...《计算机组成原理》 这门课的小伙伴应该都知道,浮点数在计算机中的存储方式遵循IEEE 754 浮点数计数标准,可以用科学计数法表示为: 微信截图_20200417195858.png 只要给出:符号...,因此可以表示的指数范围为-127 ~ 128 对于double型浮点数,指数部分11位,考虑可正可负,因此可以表示的指数范围为-1023 ~ 1024 3、尾数部分(M): 浮点数的精度是由尾数的位数来决定的...---- 精度问题如何解决 所以如果涉及商品金额、交易值、货币计算等这种对精度要求很高的场景该怎么办呢?...这时候我们我们可以用字符串或者数组来表示这种大数,然后按照四则运算的规则来手动模拟出具体计算过程,中间还需要考虑各种诸如:进位、借位、符号等等问题的处理,确实十分复杂,本文不做赘述。

3.6K12

格式化字符串一文入门到实战

注:这里特意用汉字,因为有的编译器汉字显示编码有问题,需要特别注意修改类似Unicode和utf-8 接着是格式化函数和参数 除了printf() 以外,还有许多格式函数,它们使用格式字符串来产生输出。...不同的格式说明符指示应将其替换为哪种数据类型:简单举几个例子 %d用于带符号十进制整数, %u代表十进制的无符号整数, %x是十六进制的无符号整数, %s表示数据指向字符串的指针。...20个数据 攻击者甚至可以通过使用特殊情况格式说明符直接访问堆栈上的第i个参数: printf("%10$x"); 这句代码将在堆栈上打印第十个元素 很明显,这将导致堆栈数据泄漏:包括返回地址,局部变量和其他函数的参数...不仅如此,攻击者甚至可以使用格式函数导致程序崩溃 由于%s的函数参数是通过引用传递的,因此对于格式字符串中的每个%s,该函数将从堆栈中检索一个值,将该值视为地址,然后打印出存储在该地址的字符串。...泄露栈中的 Canary 的思路是覆盖 Canary 的低字节,来打印出剩余的 Canary 部分。 gdb canary.exe 进行程序调试,输入r进行运行程序,接着输入S将会进入vuln函数。

1.4K30

C语言中的基本输入输出

常用的输出格式及含义如下: 格式字符 d , i 以十进制形式输出有符号整数(正数不输出符号) O 以八进制形式输出无符号整数(不输出前缀0) x 以十六进制形式输出无符号整数(不输出前缀0x) U...以十进制形式输出无符号整数 f 以小数形式输出单、双精度类型实数 e 以指数形式输出单、双精度实数 g 以%f或%e中较短输出宽度的一种格式输出单、双精度实数 C 输出单个字符 S 输出字符串 关于...转换说明符 %c 把输入解释成一个字符 %d 把输入解释成一个有符号十进制整数 %e,%f,%g,%a 把输入解释成一个浮点数(%a是C99的标准) %E,%F,%G,%A 把输入解释成一个浮点数(%...A是C99的标准) %i 把输入解释成一个有符号十进制整数 %o 把输入解释成一个有符号的八进制整数 %p 把输入解释成一个指针(一个地址) %s 把输入解释成一个字符串:输入的内容以第一个非空白字符作为开始...,并且包含直到下一个空白字符的全部字符 %u 把输入解释成一个无符号十进制整数 %x,%X 把输入解释称一个有符号十六进制整数 *修饰符在scanf中()的用法: *在scanf()中提供截然不同的服务

3.7K90

Python快速入门(二)

在尽量通过命名来赋予变量意义的时候,大家也不要忘了用注释来给变量释义。 字符串变量 什么是字符串?我们把字符串里面的数字,字母或者符号叫做字符,连一起串成串,就成了字符串。用来干啥呢?...原来,计算机的计数方式是二进制的,而我们常用的是十进制,要想用二进制方法表示十进制中带有小数的实数,需要花上一定功夫。...格式化字符串 有了字符串,我们就可以打印一段话。但是,我们想将事先定义好的变量加进去,该如何做到呢?比如说,我们事先定义苹果数量,是一个整数型变量。...另外%f的使用可以通过增加一个小数数字来控制小数点输出位数,例如%06.2f会打印宽度6的2位小数。...练习题: 1,先输入代码: import date time; time =datetime.date.today() 然后在一句话中用%r和%s分别打印time,查看并思考二者区别。

54120

Python快速入门(二)

在尽量通过命名来赋予变量意义的时候,大家也不要忘了用注释来给变量释义。 字符串变量 什么是字符串?我们把字符串里面的数字,字母或者符号叫做字符,连一起串成串,就成了字符串。用来干啥呢?...原来,计算机的计数方式是二进制的,而我们常用的是十进制,要想用二进制方法表示十进制中带有小数的实数,需要花上一定功夫。...格式化字符串 有了字符串,我们就可以打印一段话。但是,我们想将事先定义好的变量加进去,该如何做到呢?比如说,我们事先定义苹果数量,是一个整数型变量。...另外%f的使用可以通过增加一个小数数字来控制小数点输出位数,例如%06.2f会打印宽度6的2位小数。...练习题: 1,先输入代码: import date time; time =datetime.date.today() 然后在一句话中用%r和%s分别打印time,查看并思考二者区别。

51320

汇编语言入门

3.汇编语言 (1) 定义 为了便于记忆和阅读 ,使用字母和符号来表示机器语言的命令 ,用十进制数或六数来表示据 ,这样的计算机程序设语言就称为汇编语言 。...CPU是如何访问存储器? 输入输出操作的方式有哪些? 1.2 学习和使用汇编语言的目的(了解即可) 1.学习和使用汇编语言可以从根本上认识、理解计算机的工作过程。...更清楚地了解计算机是如何完成各种复杂的工作。 在此基础上,程序设计人员能更充分地利用机器硬件的全部功能,发挥机器的长处。 2.在计算机系统中,某些功能必须用汇编语言程序来实现。...如:机器自检、系统初始化、实际的输入输出设备的操作等。 3.汇编语言程序的效率高于高级语言程序 “效率”有两个方面的含义:程序的目标代码长度和运行的速度。...可打印ASCII码共有95个,如 数字符0~9,大小写字母等。

20450

学习Python第一步,变量与数据类型

输入后自动转化为int类型 开发工具推荐: 如果小伙伴们需要Python基础开发工具pycharm,可以参考我的这篇文章,教你如何安装专业版pycharm ?...如何获取变量的数据类型?如何判断变量是不是属于一个数据类型?...数值类型 (1)如何查看变量占用多少内存空间?...(3)转义字符和取消转义 打印字符串的时候使用斜杠加字母表示一个特殊的功能,\t表示横向制表符,\n表示回车换行,\"可以打印双引号,\\可以打印\ 对于某些特殊的符号,使用取消专业字符来表示特符号本身...\\ (4)字符串运算符+ 符号+能让两个字符串连在一起; print("my name is "+"xiaoyu") 符号*能让字符串按照指定次数打印; print("hello "*10) #

1.1K20

深入理解计算机系统cp1:存储单位、数制、编码

用四位二进制数来表示一位十进制数,称为二–十进制编码,简称 BCD(Binary Coded Decimal)码。 3.2.2 为什么需要 BCD码?...BCD 码其实是为了处理十进制转化为二进制的问题而存在的。 前面我们介绍了二进制与十进制之间的转换,但这种转换对计算密集型应用友好,对输入/输出密集型应用则不友好 —— 因此设计了 BCD码。...从字符到二进制数,需要有一个一一对应的映射,这个映射通过编码规则来实现。...对于 n 字节的符号(n>1),第一个字节的前 n 位都设为 1,第 n+1 位设为 0,后面字节的前两位一律设为 10。剩下的没有提及的二进制位,全部为这个符号的 Unicode 码二进制数。...也可以看下面这张图: image.png 以汉字“严”为例,演示如何实现 UTF-8 编码。

1.3K10

重学计算机组成原理(十)- 烫烫烫乱码的由来

任何一个十进制的整数,都能通过二进制表示出来 把一个二进制数,对应到十进制,非常简单,就是把从右到左的第N位,乘上一个2的N次方,然后加起来,就变成了一个十进制数 当然,既然二进制是一个面向程序员的...比如,我们想把13这个十进制数,用短除法转化成二进制,需要经历以下几个步骤: 因此,对应的二进制数,就是1101 刚才我们举的例子都是正数,对于负数来说,情况也是一样的吗?...我们仍然通过最左侧第一位的0和1,来判断这个数的正负。但是,我们不再把这一位当成单独的符号位,在剩下几位计算出的十进制前加上正负号,而是在计算整个二进制值的时候,在左侧最高位前面加个负号。...我们简单一点,拿一个4位的整数来算一下,比如 -5 + 4 = -1,-5 + 6 = 1 我们各自把它们转换成二进制来看一看。...我会从时钟和D触发器讲起,最终让你明白,计算机里的加法,是如何通过电路来实现的。

86830

【C语言】C语言标准库大梳理(超全)

stdio.h 定义了三个变量类型、一些宏和各种函数来执行输入和输出。 stdlib.h 定义了四个变量类型、一些宏和各种通用工具函数。...同样的还有 %c 打印字符, %e, %Le 打印浮点值。还有一些特别的,例如 %zd 强制转换为整型打印。...:0xa 常用的格式转换说明符如下: 格式转换符 解释 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe)...%e(%E) 浮点数指数输出[e-(E-)记数法] %g(%G) 浮点数不显无意义的零"0" %i 有符号十进制整数(与%d相同) %u 无符号十进制整数 %o 八进制整数 e.g. 0123 %x(...# haha //Output: i am shuihan, this is my blog 你会发现并不是你每输入一个字符就会打印到屏幕,而是你按回车(Enter)的时候读取缓冲区的字符。

2.5K20

重学计算机组成原理(十)- 烫烫烫乱码的由来

任何一个十进制的整数,都能通过二进制表示出来 把一个二进制数,对应到十进制,非常简单,就是把从右到左的第N位,乘上一个2的N次方,然后加起来,就变成了一个十进制数 当然,既然二进制是一个面向程序员的“语言...刚才我们举的例子都是正数,对于负数来说,情况也是一样的吗?...我们仍然通过最左侧第一位的0和1,来判断这个数的正负。但是,我们不再把这一位当成单独的符号位,在剩下几位计算出的十进制前加上正负号,而是在计算整个二进制值的时候,在左侧最高位前面加个负号。...我们简单一点,拿一个4位的整数来算一下,比如 -5 + 4 = -1,-5 + 6 = 1 我们各自把它们转换成二进制来看一看。...我会从时钟和D触发器讲起,最终让你明白,计算机里的加法,是如何通过电路来实现的。

88300

python字符串编码

(补充一个问题,在python3.x中,只要把unicode编码,字符串就会变成了bytes格式,也不直接打印成gbk的字符,我觉得就是想通过这样的方式明确的告诉你,想在python3.x中看字符串,必须是...Windows下控制台中的编码使用的是gbk,而在代码中使用的utf-8,python2按照utf-8编码打印到gbk编码的控制台下自然就会不一致而不能打印出正确的汉字。   ...编码方式 1.ASCII   现在我们面临了第一个问题:如何让人类语言,比如英文被计算机理解?我们以英文为例,英文中有英文字母(大小写)、标点符号、特殊符号。...如果我们将这些字母与符号给予固定的编号,然后将这些编号转变为二进制,那么计算机明显就能够正确读取这些符号,同时通过这些编号,计算机也能够将二进制转化为编号对应的字符再显示给人类去阅读。...而我们最常用的UTF-8就是这些转换格式中的一种。在这里我们不去研究UTF-8到底是如何提高效率的,你只需要知道他们之间的关系即可。

2K10

C语言入门指南(3)(格式化输入输出)(包含scanf的读取方式)

格式字符在格式串中起的作用是转换说明,也就是将那些数据以特定的形式打印出来。比如%d是说明在这个位置的数据x要以十进制的形式打印出来,%f是指数据要以定点十进制的形式打印出来。...%d——将%d对应的表达式数据以整型十进制的形式打印出来。%f——将%f对应的表达式数据以浮点型定点十进制的形式打印出来。%c——将%c对应的表达式数据以字符的形式打印出来。...通常来说,scanf中,转换说明对应的参数都需要有(&)符号,这个符号的作用是得到这个变量的地址,那么scanf的参数为什么会和pritf的参数有所不同呢?这里就要理解输入和输出的关系差别了。...但是输入是将数据从输入设备输入进程序中,输入的数据对于程序来说是未知的,程序也不知道要将这些数据保存到什么地方,所以我们需要把变量的地址当成参数来指导这些数据流向什么地方。用一个形象的例子举例。...那么怎么输入才能成功读取呢,请大家思考并尝试让输入成功与格式串对比成功。我会将正确的输入方式和原理写在评论区。转换说明是如何转换数据的我们都知道需要用正确的转换说明来符合对应的参数。

15810

Base64笔记

除了可打印的ASCII码以外,所有其他字符都必须用这种方式进行转换。 所有可打印的ASCII码字符(十进制值从33到126)都保持原样不变,"="(十进制值61)除外。 3....举一个具体的实例,演示英语单词Man如何转成Base64编码。...再举一个中文的例子,汉字"严"如何转化成Base64编码? 这里需要注意,汉字本身可以有多种编码,比如gb2312、utf-8、gbk等等,每一种编码的Base64对应值都不一样。...这对函数的特点是,它们不管输入文本的编码是什么,都会按照规则进行Base64编码。因此,如果你想得到utf-8编码下的Base64对应值,你就必须自己保证,输入的文本是utf-8编码的。 8....这一节介绍如何用Javascript语言进行Base64编码。 首先,假定网页的编码是utf-8,我们希望对于同样的字符串,用PHP和Javascript可以得到同样的Base64编码。

84040
领券