bit、byte、位、字节、字符串等概念

原始文章:http://djt.qq.com/article/view/658

1.古代送信:马车,烽火,信鸽

2.1837年,世界第一条电报诞生,

美国科学家莫尔斯尝试用一些“点”和“划”来表示不同的字母、数字和标点符号,这套表示字符的方式称为“摩尔斯电码”:

“点”对应短电脉冲,“划”对应长电脉冲信号,信号传到对方,接收机翻译

译码员根据这些点划组合就可以译成英文字母,从而完成了通信任务。

3.1946年,世界第一台计算机诞生,计算机用8个晶体管的“通”或“断”组合出一些状态来表示世间万物

其原理计算机只不过是将摩斯电码中的“点”和“划”换成了以8个字节的二进制流的方式表示。

4.讲到这里,引出几个基础概念:

  • 比特(bit):也称为“位”,计算机信息中的最小单位,是 binary digit(二进制数位) 的 缩写,指二进制中的一位
  • 字节(Byte):计算机中信息计量的一种单位,一个位就代表“0”或“1”,每8个位(bit)组成一个字节(Byte)
  •                     MySQL中定义 VARCHAR(45)  即是指 45个字节
  • 字符(Character):文字与符号的总称,可以是各个国家的文字、标点符号、图形符号、数字等
  • 字符集(Character Set):是多个字符的集合
  • 编码(Encoding): 信息从一种形式或格式转换为另一种形式的过程
  • 解码(decoding): 编码的逆过程
  • 字符编码(Character Encoding): 按照何种规则存储字符

现在来看我们第一条电报,莫尔斯编码中包含了大小写英文字母和数字等符号。

  • 这里的每一个符号其实就是⌈字符⌋
  • 这所有的字符的集合就叫做⌈字符集⌋
  • “点”或“划”与字符之间的对应关系即可以称为⌈字符编码⌋

5.编码发展的3个阶段

阶段一二的情况下,一个英文字符占一个字节;一个汉字占2个字节;

    

 

转载于:https://www.cnblogs.com/tiantianle/p/5645338.html

### Python 中将二进制字节串转换为字符串 在Python中,可以使用内置方法`decode()`来完成从二进制字节串到字符串的转换。此函数尝试按照指定编码解释给定的字节序列并返回相应解码后的字符串对象[^1]。 对于简单的ASCII字符集而言,默认情况下可以直接调用`.decode('ascii')`;而对于更广泛的Unicode支持,则推荐采用UTF-8作为参数传递给该方法: ```python binary_data = b'hello world' string_data = binary_data.decode('utf-8') print(string_data) ``` 如果原始数据是以其他形式存在的二进制表示法(比如由一系列0和1组成的纯文本),则先要将其解析成实际的bytearray再做进一步处理。这里提供了一个辅助工具函数用于演示这一过程[^2]: ```python def binstr_to_bytes(bin_str): """Convert a string of bits into a bytes object.""" # Ensure length is multiple of 8 by padding with leading zeros if necessary padded_bin_str = ((8 - len(bin_str) % 8) * '0' + bin_str)[-len(bin_str):] int_representation = int(padded_bin_str, base=2) byte_number = (int Representation.bit_length() + 7) // 8 return int_representation.to_bytes(byte_number, byteorder='big') # Example usage: binary_string_example = "0110100001101001" converted_byte_array = binstr_to_bytes(binary_string_example) final_string_result = converted_byte_array.decode('utf-8') print(final_string_result) ``` 上述代码片段展示了如何定义一个名为`binstr_to_bytes`的帮助函数,它接收一串代表模式的字符串输入,并输出对应的bytes对象。之后通过调用`decode()`即可获得最终的人类可读字符串版本。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值