B1 · 第1集 · 5:08

二进制入门

本集介绍二进制的基本概念,演示如何将文字(如“salut”“chat”)编码为仅含0和1的序列,并探讨编码与解码的原理。

来源:stph / aperi.tube · 许可:CC BY-SA 4.0

字幕

  1. Bonjour à tous, je m'appelle David Savourey,

    大家好,我叫大卫·萨武雷。

  2. je suis employé par le CNRS et je travaille au laboratoire d'informatique de l'UTC.

    我在法国国家科学研究中心(CNRS)工作,就职于特鲁瓦技术大学(UTC)计算机实验室。

  3. Et aujourd'hui, je voudrais vous proposer une initiation au système binaire.

    今天,我想带大家初步了解二进制系统。

  4. Alors chez vous, tout le monde a maintenant un téléphone, une tablette,

    现在,大家家里都有手机、平板电脑,

  5. un ordinateur dans lequel on peut trouver des textes,

    还有电脑,里面存着文字、

  6. des photos, de la musique, des vidéos.

    照片、音乐和视频。

  7. Tout ça, dans la mémoire de l'ordinateur, c'est écrit en binaire.

    所有这些内容,在电脑内存中都是以二进制形式存储的。

  8. En binaire, ça veut dire une chose très simple,

    所谓二进制,意思非常简单:

  9. ça veut dire uniquement avec des zéros et des un.

    就是只用数字0和1来表示。

  10. Alors, pour des objets complexes comme des vidéos, ça peut paraître surprenant,

    像视频这样复杂的对象,听起来可能令人惊讶,

  11. mais on est capable de convertir une vidéo uniquement en zéro et en un.

    但我们确实能把一段视频完全转换成0和1的组合。

  12. Alors nous aujourd'hui on ne va pas voir les vidéos parce que c'est quand même très

    今天我们不会讲解视频,因为那确实太复杂了;

  13. compliqué, mais on va voir comment le faire avec du texte.

    我们将先从文字入手,学习如何处理。

  14. Notre objectif sera donc de savoir transformer un texte en binaire,

    因此,我们的目标是学会把文字转换成二进制,

  15. c'est ce qu'on appelle l'encodage.

    这叫做“编码”。

  16. Et savoir ensuite retrouver le mot à partir du code,

    然后,再学会根据二进制代码还原出原来的文字,

  17. c'est ce qu'on appelle le décodage.

    这叫做“解码”。

  18. Vous voyez ici que le coati a écrit sur son téléphone" salut" et qu'il veut envoyer

    您看,这只浣熊在手机上写了“你好”,

  19. ce message à la taupe.

    想把这条消息发给鼹鼠。

  20. Eh bien, il va falloir qu'il y ait un encodage du mot" salut" en un certain code

    那么,“你好”这个词就必须先被编码成某种二进制代码,

  21. binaire et qu'ensuite le téléphone de la taupe, lui,

    接着,鼹鼠的手机

  22. décode ce code binaire pour refabriquer le mot" salut".

    再将该二进制代码解码,重新还原出“你好”这个词。

  23. Alors on va s'y mettre et on va commencer par un premier exercice.

    现在我们开始动手,先来做第一个练习。

  24. On va faire quelque chose de simple, c'est qu'on va compter à partir de zéro,

    我们先做一件简单的事:从零开始数数,

  25. mais avec une contrainte,

    但有一个限制条件:

  26. c'est qu'on ne doit garder que les nombres qui s'écrivent uniquement avec des zéros

    只能保留那些仅由数字0和1组成的数,

  27. et avec des uns.

    也就是只含0和1的数。

  28. Alors on commence: 0, 1, le 2 est interdit, le 3 aussi, etc.

    那么我们开始:0、1,2被禁止,3也被禁止,等等。

  29. etc. jusqu'à 9.

    等等,一直到9。

  30. Donc le suivant autorisé, c'est 10,

    因此下一个允许的数是10,

  31. puis 11, 12, 13, etc.

    接着是11、12、13,等等。

  32. c'est interdit, les 20, les 30, les 40, etc.

    这些是被禁止的:20、30、40,等等。

  33. c'est interdit, on se retrouve à 100.

    这些也被禁止,我们最终会到达100。

  34. Puis 101, 110, 111, vous commencez à avoir l'habitude,

    然后是101、110、111,您开始熟悉了,

  35. ensuite ça va être tout interdit jusqu'à 1000, puis 1001, 1010,

    接下来,从1000之前的所有数全被禁止,之后是1001、1010,

  36. 1011, 1100, 1101, etc.

    1011、1100、1101,等等。

  37. Etc. Je vous laisse le faire à votre rythme de votre côté.

    等等。我留给您自己按节奏练习。

  38. Alors voilà, quand on en a écrit suffisamment, on s'arrête.

    好了,当我们写够了,就停下来。

  39. Et puis maintenant, on va se dire que pour encoder,

    现在,我们来考虑如何编码:

  40. eh bien on va associer à chaque lettre de l'alphabet.

    我们将为字母表中的每个字母,

  41. Un nombre binaire.

    一个二进制数。

  42. Alors voilà, j'ai remis les nombres et à côté j'ai mis les lettres.

    看,我把数字列出来了,旁边标上了对应的字母。

  43. Et donc je vais associer à la lettre A le nombre 0, à la lettre B le nombre

    因此,我将字母A对应数字0,字母B对应数字1,字母C对应数字10,等等。

  44. 1, à la lettre C le nombre 10, etc.

    等等。

  45. Et donc maintenant, on est prêt pour encoder un mot.

    现在,我们已准备好对一个单词进行编码了。

  46. Vous voyez, il y a les codes à

    您看,编码在左边,

  47. gauche, pardon.

    抱歉。

  48. Et là, on va utiliser un petit mot, ici" chat", et on va fabriquer son code.

    这里,我们用一个简短的词“chat”(猫),来生成它的编码。

  49. Alors, la lettre C.

    字母C,

  50. Le code est 10, la lettre H,

    编码是10;字母H,

  51. le code est 111, la lettre A, le code est 0, et la lettre T,

    编码是111;字母A,编码是0;字母T,

  52. le code est 10011.

    编码是10011。

  53. Et voilà, on a fabriqué le code du mot chat.

    好了,我们已经编出了‘猫’这个词的编码。

  54. Mais on a triché parce que notre code contient des 0, des

    但我们作弊了,因为我们的编码里包含了0、1

  55. 1 et des espaces.

    以及空格。

  56. Et les espaces, c'est interdit.

    而空格是不允许的。

  57. Vous voyez qu'il y a des espaces entre 10 et 111, entre 111 et 0,

    您看,10和111之间、111和0之间,

  58. et entre 0 et 10111.

    以及0和10111之间,都有空格。

  59. Eh bien, en binaire, on a le droit uniquement aux 0 et aux 1.

    其实,在二进制中,只允许使用0和1。

  60. Alors si on n'a pas le droit aux espaces, eh bien c'est simple,

    既然不允许用空格,那很简单——

  61. on va les enlever.

    我们就把它们去掉。

  62. Et finalement, le code du mot chat sera 1 0 1 1 1 0 1 0 0

    最终,‘猫’这个词的编码就变成:1 0 1 1 1 0 1 0 0

  63. 1 1. Voyons maintenant ce qui se passe du point de vue du décodage.

    1 1。现在我们来看看解码时会发生什么。

  64. Je vous rappelle que le décodage doit permettre de retrouver le même mot.

    我再提醒一下:解码必须能还原出原来的词。

  65. La situation suivante où le coati envoie le mot chat,

    比如下面这种情况:浣熊发送了‘猫’这个词,

  66. ça génère un certain code, et au décodage, la taupe reçoit le mot chien,

    生成了某个编码,但解码后,鼹鼠收到的却是‘狗’这个词,

  67. ne nous convient pas, on ne veut pas de ça.

    这可不行,我们不接受这种结果。

  68. Nous ce qu'on veut, c'est que si le coati envoie le mot chat,

    我们真正想要的是:如果浣熊发送‘猫’这个词,

  69. au décodage, on retrouve bien le mot chat.

    那么解码后,一定能准确还原出‘猫’这个词。

  70. Alors, je vous ai réécrit ici le code qu'on avait fabriqué à partir du mot chat,

    我在这里重新写出了刚才从‘猫’这个词生成的编码,

  71. et vous voyez que, effectivement,

    您可以看到,

  72. on peut retrouver le mot chat à partir de ce code, en prenant d'abord 10,

    确实能从这个编码中还原出‘猫’这个词:先取10,

  73. puis 111, puis 0, puis 10011.

    再取111,接着取0,最后取10011。

  74. Mais si on découpe différemment le même code, on peut fabriquer d'autres mots.

    但如果对同一段编码做不同的切分,就能造出其他词。

  75. Par exemple, ici je prends d'abord le 1 pour B, le 0 pour A,

    例如,这里我先取1代表B,再取0代表A,

  76. le 1 pour B, le 1 pour B, le 1 pour B, etc.

    接着又取1代表B,1代表B,1代表B……