Python的基本数据类型以及进制的互相转换

本文介绍了Python的基本数据类型,包括整型、浮点型、布尔型、复数和字符串,详细讲解了字符串的转义字符和运算。同时,文章阐述了Python中不同进制的转换规则,如0b、0o、0x前缀表示的二进制、八进制和十六进制,并提供了转换函数bin()、int()、hex()和oct()的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

目录

一、python的基本数据类型:

1.整型与浮点型

2.bool 布尔类型:

3.complex 复数 :数字加j

4. 字符串:

5.转义字符:

6.原始字符串

7.字符串的运算:

8.截取字符串

二、python进制的转换:

       1. 10进制,2进制 ,8进制,16进制

       2.  0b表示2进制,0o表示8进制,0x表示16进制。


一、python的基本数据类型:


1.整型与浮点型


          Number:数字。(整数int,浮点数float)
          浮点数:其他语言有单精度(float),双精度(double)
          函数:type(1) 查看1的数据类型,type(1+0.1)     

>>> type(4/2)
<class 'float'>
>>> type(4//2)
<class 'int'>
>>> 

整数除以整数得出的是浮点数,要得出整数要用“//”

         单斜杠是除法。
         双斜杠是整除,只保留整数部分。

 

2.bool 布尔类型:

 

表示真True、假False (首字母大写,bool类型是属于数字number大分类下的一种)
          bool(0)==False,括号里为数字,只有当数字为0时,布尔值为false
          bool('abc')==True
          bool('')==False
          bool([1,2,3])==True
          bool([])==False
          bool({1,2,3})==True
          bool({})==False
          bool(None)==False
          空值会被认为False

3.complex 复数 :数字加j

         Complex number: 36j

 

4. 字符串:

单引号与双引号
   1.str 字符串“:
          - 如何表示字符串?单引号,双引号,三引号 (绝对是英文字符)
          "Let's go"  推荐
          'Let"s go'
          'Let\'s go'  '\'转义字符,这里不推荐,不美观,不自然。
          转义字符有很多种。

 

   2.当字符串要表达多行内容时,为避免引号未成对就按下回车键导致报错,可以使用三引号。

<think>嗯,用户想知道浮点数和十六进制之间如何互相转换。首先,我需要回忆一下相关知识。IEEE754标准应该是关键,对吧?这个标准规定了浮点数在内存中的表示方式,包括单精度(32位)和双精度(64位)格式。转换过程应该涉及到将浮点数的各个部分(符号位、指数、尾数)拆分,然后转换成十六进制,或者反过来。 比如,单精度浮点数有1位符号位,8位指数,23位尾数。那转换的时候,可能需要将这三部分分别处理。例如,浮点数-12.25,符号位是1,然后将其二进制科学记数法表示出来,得到指数和尾数部分,再组合起来转成十六进制。 用户可能想知道具体的步骤,而不仅仅是理论。所以需要给出步骤说明,可能还需要代码示例。比如用Python的话,可以利用struct模块的pack和unpack函数,或者用ctypes库进行位操作。不过要注意不同编程语言可能有不同的实现方式,比如在C语言中可以直接用指针转换,而其他语言可能需要更复杂的处理。 另外,用户提到的引用里提到了一些工具和应用场景,比如串口通讯、数据存储等,可能需要转换工具或者代码实现。需要确保给出的方法适用于这些场景,并且考虑到不同编程语言的差异,比如引用[2]提到没有C/C++特性的语言转换可能困难,这时候可能需要手动实现转换算法。 还要考虑用户可能的疑问,比如为什么转换后的十六进制是这样的?或者如何处理非规格化数、无穷大、NaN等情况。不过用户的问题可能更关注基本转换方法,所以先介绍常规情况,再提到特殊情况。 最后,生成相关问题的时候,要围绕转换方法、应用场景、不同语言的实现、常见错误等方面提问,帮助用户深入理解。</think>### 浮点数十六进制互转方法及实现 #### 一、转换原理(基于IEEE754标准) IEEE754标准定义了浮点数的二进制表示形式,包含以下三部分: 1. **符号位**:1位(0正1负) 2. **指数位**:单精度8位,双精度11位 3. **尾数位**:单精度23位,双精度52位 例如单精度浮点数格式: $$(-1)^{sign} \times (1 + mantissa) \times 2^{exponent - 127}$$ #### 二、浮点数转十六进制步骤(以32位为例) 1. 将浮点数转换为二进制格式 2. 按符号位、指数位、尾数位拆分 3. 将二进制组合转换为十六进制 **示例**:将-12.25转换为十六进制 ```python import struct hex_value = struct.pack('>f', -12.25).hex() # 输出c3430000 ``` #### 三、十六进制转浮点数步骤 1. 将十六进制字符串转为4字节二进制数据 2. 按IEEE754标准解析各部分 3. 组合计算结果 **Python实现**: ```python def hex_to_float(hex_str): return struct.unpack('>f', bytes.fromhex(hex_str))[0] print(hex_to_float('c3430000')) # 输出-12.25 ``` #### 四、其他语言实现参考 1. **C/C++**:通过联合体或指针强制转换[^1] ```c float f; unsigned char *p = (unsigned char *)&f; ``` 2. **Java**:使用`Float.floatToIntBits()`和`Integer.toHexString()` 3. **JavaScript**:借助`ArrayBuffer`和`DataView`实现类型转换[^2] #### 五、应用场景 - 串口通信协议中的浮点数据传输 - 嵌入式系统内存数据解析 - 网络协议中的进制数据打包 - 数据库特殊格式存储
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值