Python-VBA函数之旅-oct函数

news2024/11/17 17:41:07

目录

一、oct函数的常见应用场景

二、oct函数使用注意事项

三、如何用好oct函数?

1、oct函数:

1-1、Python:

1-2、VBA:

2、推荐阅读:

个人主页:神奇夜光杯-CSDN博客 

 

一、oct函数的常见应用场景

        oct函数在 Python 中主要用于将整数转换为八进制表示形式,这在某些特定的应用场景下是非常有用的,常见的应用场景有:

1、文件权限检查:在Unix和Linux系统中,文件权限通常使用八进制表示。例如,权限 `755` 表示所有者有读、写和执行权限,组用户和其他用户只有读和执行权限,使用oct()函数可以帮助你更容易地理解或操作这些权限。

2、位操作与位掩码:在处理位级操作时(如设置、清除或检查特定的位),八进制表示法可以提供一个简洁的方式来查看和操作位模式,虽然十六进制(使用hex()函数)在这种情况下更常见,但八进制在某些情况下可能更直观。

3、硬件编程和通信:在硬件编程和与硬件设备的通信中,八进制数经常用于表示二进制数据的分组,例如,在串行通信中,数据可能以字节为单位发送,每个字节由8位二进制数组成,可以很容易地转换为两个八进制数字。

4、调试和日志记录:在开发和调试过程中,有时需要查看和操作整数的二进制或八进制表示形式,使用oct()函数可以方便地获取这些表示形式,并将其记录到日志或输出到控制台中。

5、配置与设置:在某些应用程序或系统中,配置设置可能需要以八进制形式表示,使用oct()函数可以将用户输入的整数转换为相应的八进制表示形式,然后将其存储在配置文件中或用于配置系统参数。

6、数据验证和检查:在某些情况下,你可能需要验证一个数字是否是一个有效的八进制数,虽然oct()函数本身不会进行验证(它会尝试将任何整数转换为八进制字符串),但你可以使用它来帮助你构建这样的验证逻辑。

7、算法和数据处理:在处理二进制数据或进行需要位操作的算法时,八进制表示法可能更易于人类理解和操作,虽然Python主要使用十六进制(hex()函数)来表示较大的二进制数,但在某些情况下,八进制可能更直观。

8、密码学与安全:虽然八进制本身在密码学和安全领域中的应用可能不如十六进制或二进制普遍,但在某些特定的上下文中,oct()函数仍然可能有用,特别是当处理与权限、访问控制或其他基于位的策略相关的安全功能时。

9、性能优化和内存管理:虽然oct()函数本身可能不是性能优化的关键部分,但在处理大量位数据或执行复杂的位操作时,将整数转换为八进制字符串以进行日志记录、调试或可视化可能会帮助你更有效地管理和优化你的代码和内存使用。

        注意,虽然oct()函数在某些特定场景下可能非常有用,但在大多数日常编程任务中,你可能更常使用十进制、二进制或十六进制数,然而,了解这些不同的数字系统和如何在Python中进行转换仍然是非常重要的。

二、oct函数使用注意事项

        在Python中使用oct()函数时,需要注意以下几点:

1、输入类型:oct()函数只接受整数类型的参数,如果你尝试将一个非整数(如浮点数、字符串等)传递给oct()函数,Python会引发一个TypeError异常。

2、输出格式:在Python 3中,oct()函数返回的字符串表示形式带有0o前缀,表示这是一个八进制数,如果你需要不带前缀的字符串,可以使用字符串切片来去除它;在Python 2中,oct()函数返回的字符串表示形式没有0o前缀。

3、大整数的表示:对于非常大的整数,oct()函数能够正确地将它们转换为八进制表示形式,而不用担心整数溢出或精度问题。

4、性能:虽然oct()函数在大多数情况下都非常快,但如果你在处理大量数据时需要频繁调用它,可能会对性能产生影响,在这种情况下,可以考虑使用其他方法来优化你的代码。

5、进制间的转换:如果你需要在八进制、二进制和十六进制之间进行转换,需要小心使用oct()、bin()和hex()函数,并理解它们返回的字符串表示形式,特别是要注意前缀(`'0o'`、`'0b'`和`'0x'`)的存在与否。

6、整数范围:oct()函数能够处理Python中的任意整数(在理论上是无限的,但在实践中受到可用内存的限制),但是,如果你试图将超出Python整数范围的值传递给oct()函数(这在实际中是不可能发生的,因为Python整数可以扩展到任何大小),Python将引发一个OverflowError(尽管这在实际中几乎不可能发生)。

7、国际化和编码:虽然oct()函数返回的字符串是ASCII编码的,但在处理国际化或特殊编码的文本时,需要确保你的代码能够正确处理这些字符串,这通常不是oct()函数本身的问题,而是整个应用程序或系统需要关注的问题。

三、如何用好oct函数?

        在Python中,oct()函数主要用于将整数转换为八进制字符串表示,要用好oct()函数,你最好遵循以下建议:

1、明确输入类型:确保你传递给oct()函数的参数是整数类型;如果参数是其他类型(如浮点数、字符串等),你需要先将其转换为整数。

2、处理输出格式:Python 3中的oct()函数返回的字符串以0o开头,表示这是一个八进制数,如果你不需要这个前缀,可以使用字符串切片来去除它。

3、理解八进制表示:八进制是一种基数为8的数制系统,使用数字0-7来表示,了解八进制的基本概念可以帮助你更好地理解和使用oct()函数。

4、错误处理:当处理用户输入或不确定的数据时,应该添加适当的错误处理来捕获可能的异常。例如,你可以使用`try-except`块来捕获并处理TypeError(如果传递给oct()函数的参数不是整数)。

5、避免不必要的转换:如果你已经有一个八进制字符串(例如从文件或用户输入中读取的),并且你只是想对其进行操作或显示,那么就没有必要使用oct()函数将其转换回整数再转换回字符串,直接操作字符串可能会更高效。

6、结合其他函数使用:你可以将oct()函数与其他Python函数结合使用,以执行更复杂的任务。例如,你可以使用字符串方法(如split()、replace()等)来进一步处理oct()函数返回的字符串。

7、文档和注释:在你的代码中使用oct()函数时,添加适当的文档和注释可以帮助其他人(或未来的你)更好地理解你的代码是如何工作的,解释为什么你选择使用八进制表示,以及你如何使用oct()函数来实现你的目标。

8、测试:编写测试用例来验证你的代码是否正确地使用了oct()函数,确保你的代码能够处理各种边界情况和异常情况。

1、oct函数:
1-1、Python:
# 1.函数:oct
# 2.功能:用于将整数转换为带前缀"0o"的八进制数字符串
# 3.语法:oct(x)
# 4.参数:x,必须参数,表示一个整数值
# 5.返回值:返回一个字符串,该字符串表示参数x的八进制形式
# 6.说明:
# 7.示例:
# 用dir()函数获取该函数内置的属性和方法
print(dir(oct))
# ['__call__', '__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
# '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__name__',
# '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__self__', '__setattr__', '__sizeof__',
# '__str__', '__subclasshook__', '__text_signature__']

# 用help()函数获取该函数的文档信息
help(oct)

# 应用一:文件权限检查
import os
import stat
def get_file_permissions(file_path):
    # 使用os.stat获取文件状态信息
    stat_info = os.stat(file_path)
    # 使用stat.S_IMODE从文件状态信息中提取权限位
    permissions = stat.S_IMODE(stat_info.st_mode)
    # 使用oct()将权限位转换为八进制字符串表示,并去除'0o'前缀
    octal_permissions = oct(permissions)[2:]
    return octal_permissions
def check_file_permissions(file_path, required_permissions):
    # 获取文件的八进制权限
    file_perms = get_file_permissions(file_path)
    # 将所需权限也转换为八进制字符串(如果它们不是已经是的话)
    if not required_permissions.startswith('0') and not required_permissions.startswith('o'):
        required_perms_int = int(required_permissions, 8)  # 假设required_permissions是有效的八进制字符串
        required_perms = oct(required_perms_int)[2:]
    # 检查文件权限是否包含所需权限
    # 这里我们简单地检查required_permissions是否是file_perms的子集(即每个位都是1的地方,file_perms也必须是1)
    # 这可以通过将两者转换为整数并执行位与操作来完成,然后检查结果是否等于required_permissions对应的整数
    required_perms_int = int(required_permissions, 8)
    file_perms_int = int(file_perms, 8)
    has_required_perms = (file_perms_int & required_perms_int) == required_perms_int
    return has_required_perms
# 使用示例
file_path = 'file.txt'  # 替换为你的文件路径
print(f"File permissions for '{file_path}': {get_file_permissions(file_path)}")
# 检查文件是否具有特定的权限,比如 644(读/写 对拥有者, 只读 对组和其他用户)
required_permissions = '644'
if check_file_permissions(file_path, required_permissions):
    print(f"The file '{file_path}' has the required permissions '{required_permissions}'.")
else:
    print(f"The file '{file_path}' does not have the required permissions '{required_permissions}'.")
# File permissions for 'file.txt': 666
# The file 'file.txt' has the required permissions '644'.

# 应用二:位操作与位掩码
def bitwise_operations_and_mask(num1, num2, mask):
    # 位与操作
    and_result = num1 & num2
    print(f"num1: {oct(num1)[2:]} & num2: {oct(num2)[2:]} = {oct(and_result)[2:]}")
    # 位或操作
    or_result = num1 | num2
    print(f"num1: {oct(num1)[2:]} | num2: {oct(num2)[2:]} = {oct(or_result)[2:]}")
    # 位异或操作
    xor_result = num1 ^ num2
    print(f"num1: {oct(num1)[2:]} ^ num2: {oct(num2)[2:]} = {oct(xor_result)[2:]}")
    # 位非操作(注意这里是对单个数进行的)
    not_result = ~num1
    print(f"~num1: {oct(num1)[2:]} = {oct(not_result)[2:]} (注意:位非操作的结果依赖于整数的位数)")
    # 位掩码操作
    masked_result = num1 & mask
    print(f"num1: {oct(num1)[2:]} & mask: {oct(mask)[2:]} = {oct(masked_result)[2:]}")
# 示例数值(以十进制表示,但实际上是进行二进制位操作)
num1 = 0b1100  # 二进制 1100,十进制 12
num2 = 0b1010  # 二进制 1010,十进制 10
mask = 0b1100  # 掩码,二进制 1100,十进制 12
# 执行位操作和位掩码
bitwise_operations_and_mask(num1, num2, mask)
# num1: 14 & num2: 12 = 10
# num1: 14 | num2: 12 = 16
# num1: 14 ^ num2: 12 = 6
# ~num1: 14 = o15 (注意:位非操作的结果依赖于整数的位数)
# num1: 14 & mask: 14 = 14

# 应用三:硬件编程和通信
# 假设我们有一个硬件寄存器,它存储了一个8位的值
# 我们使用整数来表示这个值,因为Python中的整数是以二进制形式存储的
def read_register(address):
    # 在真实情况下,这里会是一个与硬件通信的函数
    # 假设我们有一个模拟的寄存器映射
    registers = {
        0x01: 0b11001010,  # 假设这是地址0x01的寄存器值
        # ... 其他寄存器值
    }
    return registers.get(address, 0)  # 如果地址不存在,返回0
def write_register(address, value):
    # 在真实情况下,这里会是一个与硬件通信的函数
    # 在这个模拟示例中,我们只是打印出写入的地址和值
    print(f"Writing to register 0x{address:02X}: 0b{value:08b} (octal: 0o{oct(value)[2:]})")
# 读取寄存器并显示其八进制表示
register_address = 0x01
register_value = read_register(register_address)
print(f"Register 0x{register_address:02X} value: 0b{register_value:08b} (octal: 0o{oct(register_value)[2:]})")
# 写入一个值到寄存器(模拟)
new_value = 0b10101010
write_register(register_address, new_value)
# Register 0x01 value: 0b11001010 (octal: 0o312)
# Writing to register 0x01: 0b10101010 (octal: 0o252)

# 应用四:调试和日志记录
import logging
# 配置一个简单的日志记录器
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
def process_data(data):
    # 假设我们有一些二进制数据处理函数
    # 在这里,我们只是简单地将数据左移一位
    processed_data = data << 1
    # 使用oct()将处理后的数据转换为八进制,并记录到日志中
    logging.info(f"Original data (decimal): {data}, (binary): {bin(data)[2:]}, (octal): {oct(data)[2:]}")
    logging.info(
        f"Processed data (decimal): {processed_data}, (binary): {bin(processed_data)[2:]}, (octal): {oct(processed_data)[2:]}")
    # 返回处理后的数据(在实际应用中可能不需要返回)
    return processed_data
# 示例使用
data = 0b1100  # 二进制数据
processed_data = process_data(data)
# 这里只是为了演示,实际中processed_data可能用于后续操作
print(f"Processed data (decimal): {processed_data}")
# Processed data (decimal): 24
# 2024-05-04 22:38:25,704 - INFO - Original data (decimal): 12, (binary): 1100, (octal): 14
# 2024-05-04 22:38:25,704 - INFO - Processed data (decimal): 24, (binary): 11000, (octal): 30

# 应用五:配置与设置
import logging
# 假设我们有一个配置字典,其中包含一些八进制表示的设置
config = {
    'file_permissions': 0o644,  # 八进制表示的文件权限
    'device_setting': 0o377,  # 假设的硬件设置,以八进制表示
    # ... 其他设置
}
# 配置日志记录器
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
def configure_and_log_settings(config_dict):
    # 遍历配置字典
    for setting_name, setting_value in config_dict.items():
        # 检查设置值是否为整数(这里简化为只处理整数)
        if isinstance(setting_value, int):
            # 使用oct()将整数转换为八进制字符串,并去除'0o'前缀
            octal_str = oct(setting_value)[2:]
            # 记录日志
            logging.info(f'Setting {setting_name} configured to octal {octal_str} (decimal {setting_value})')
        else:
            # 对于非整数设置,简单记录其值
            logging.info(f'Setting {setting_name} configured to {setting_value}')
# 调用函数配置并记录日志
configure_and_log_settings(config)
# 2024-05-04 22:40:46,874 - INFO - Setting file_permissions configured to octal 644 (decimal 420)
# 2024-05-04 22:40:46,874 - INFO - Setting device_setting configured to octal 377 (decimal 255)

# 应用六:算法和数据处理
def add_octal_numbers(octal1, octal2):
    # 将八进制字符串转换为整数
    num1 = int(octal1, 8)
    num2 = int(octal2, 8)
    # 计算两个整数的和
    sum_decimal = num1 + num2
    # 将和转换回八进制字符串
    sum_octal = oct(sum_decimal)[2:]  # 去掉'0o'前缀
    return sum_octal
# 示例用法
octal1 = "123"  # 八进制数 123
octal2 = "456"  # 八进制数 456
# 计算和并打印结果
result = add_octal_numbers(octal1, octal2)
print(f"The sum of {octal1} and {octal2} in octal is: {result}")
# 注意:由于八进制数的范围有限(0-7),如果和超过了单个八进制数字可以表示的范围,
# 则结果将包含多个八进制数字。例如,八进制中的 7 + 1 等于 10(在十进制中是 8),
# 但在八进制中表示为 '10' 而不是 '8'。
# The sum of 123 and 456 in octal is: 601

# 应用七:密码学与安全
def octal_encode(data, key):
    """
    简化的“编码”函数,将字符串的每个字符的ASCII码与八进制密钥进行简单的异或操作
    这不是一个安全的加密方法,仅用于展示八进制在数据处理中的应用
    :param data: 要编码的字符串
    :param key: 八进制表示的密钥(将被转换为整数)
    :return: 编码后的字符串(其ASCII码与密钥进行了异或操作)
    """
    # 将八进制密钥转换为整数
    key_int = int(key, 8)
    # 对字符串的每个字符进行异或操作
    encoded_data = ''.join(chr(ord(c) ^ key_int) for c in data)
    return encoded_data
def octal_decode(encoded_data, key):
    """
    解码函数,与编码函数相反
    :param encoded_data: 编码后的字符串
    :param key: 八进制表示的密钥(将被转换为整数)
    :return: 解码后的原始字符串
    """
    # 将八进制密钥转换为整数
    key_int = int(key, 8)
    # 对编码后的字符串的每个字符进行异或操作以恢复原始数据
    decoded_data = ''.join(chr(ord(c) ^ key_int) for c in encoded_data)
    return decoded_data
# 示例用法
original_data = "Hello, Python!"
key = "1024"  # 八进制密钥,对应十进制的 83
# 编码数据
encoded_data = octal_encode(original_data, key)
print(f"Encoded data: {encoded_data}")
# 解码数据
decoded_data = octal_decode(encoded_data, key)
print(f"Decoded data: {decoded_data}")
# 应该输出原始数据
assert decoded_data == original_data
# Encoded data: ɜɱɸɸɻȸȴɄɭɠɼɻɺȵ
# Decoded data: Hello, Python!

# 应用八:性能优化和内存管理
# 假设我们有一个整数列表,我们需要将它们转换为八进制字符串列表
numbers = [10, 20, 30, 40, 50]
# 使用传统的循环和append方法
octal_strings_traditional = []
for num in numbers:
    octal_strings_traditional.append(oct(num)[2:])  # 去掉 '0o' 前缀
# 使用列表推导式
octal_strings_list_comp = [oct(num)[2:] for num in numbers]
# 列表推导式通常更快,因为它利用了Python的内部优化
# 在这个例子中,它还减否产生相同的结果  少了代码量并提高了可读性
# # 输出结果以验证两种方法是
print(octal_strings_traditional)
print(octal_strings_list_comp)
# ['12', '24', '36', '50', '62']
# ['12', '24', '36', '50', '62']
1-2、VBA:
略,待后补。
2、推荐阅读:

2-1、Python-VBA函数之旅-globals()函数

Python算法之旅:Algorithm

Python函数之旅:Functions

个人主页:神奇夜光杯-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1642841.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

批量抓取某电影网站的下载链接

思路&#xff1a; 进入电影天堂首页&#xff0c;提取到主页面中的每一个电影的背后的那个urL地址 a. 拿到“2024必看热片”那一块的HTML代码 b. 从刚才拿到的HTML代码中提取到href的值访问子页面&#xff0c;提取到电影的名称以及下载地址 a. 拿到子页面的页面源代码 b. 数据提…

Linux理解文件操作 文件描述符fd 理解重定向 dup2 缓冲区 C语言实现自己的shell

文章目录 前言一、文件相关概念与操作1.1 open()1.2 close()1.3 write()1.4 read()1.4 写入的时候先清空文件内容再写入1.5 追加&#xff08;a && a&#xff09; 二、文件描述符2.1 文件描述符 fd 0 1 2 的理解2.2 FILE结构体&#xff1a;的源代码 三、深入理解文件描述…

Vue 开发中的一些问题简单记录,Cannot find module ‘webpack/lib/RuleSet‘

您好&#xff0c;我是码农飞哥&#xff08;wei158556&#xff09;&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f4aa;&#x1f3fb; 1. Python基础专栏&#xff0c;基础知识一网打尽&#xff0c;9.9元买不了吃亏&#xff0c;买不了上当。 Python从入门到精…

【C语言】项目实践-贪吃蛇小游戏(Windows环境的控制台下)

一.游戏要实现基本的功能&#xff1a; • 贪吃蛇地图绘制 • 蛇吃食物的功能 &#xff08;上、下、左、右方向键控制蛇的动作&#xff09; • 蛇撞墙死亡 • 蛇撞自身死亡 • 计算得分 • 蛇身加速、减速 • 暂停游戏 二.技术要点 C语言函数、枚举、结构体、动态内存管…

【Java探索之旅】内部类 静态、实例、局部、匿名内部类全面解析

文章目录 &#x1f4d1;前言一、内部类1.1 概念1.2 静态内部类1.3 实例内部类1.4 局部内部类1.5 匿名内部类 &#x1f324;️全篇总结 &#x1f4d1;前言 在Java编程中&#xff0c;内部类是一种强大的特性&#xff0c;允许在一个类的内部定义另一个类&#xff0c;从而实现更好的…

Rust web简单实战

一、使用async搭建简单的web服务 1、修改cargo.toml文件添加依赖 [dependencies] futures "0.3" tokio { version "1", features ["full"] } [dependencies.async-std] version "1.6" features ["attributes"]2、搭…

网络攻击(Cyber Attacks)

目录 1.概念 2.分类 3.总结 1.概念 网络攻击&#xff08;Cyber Attacks&#xff0c;也称赛博攻击&#xff09;是指针对计算机信息系统、基础设施、计算机网络或个人计算机设备的&#xff0c;任何类型的进攻动作。对于计算机和计算机网络来说&#xff0c;破坏、揭露、修改、使…

【C++】STL — List的接口讲解 +详细模拟实现

前言&#xff1a; 本章我们将学习STL中另一个重要的类模板list… list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。list的底层是带头双向循环链表结构&#xff0c;双向链表中每个元素存储在互不相关的独立节点中&#xf…

从零到屎山系列-游戏开发(Day2)

简介 这次就来一个比较简单的小游戏贪吃蛇 贪吃蛇 游戏规则就是一串珠子不断的移动&#xff0c;碰到场景里面的食物变长一点&#xff0c;碰到墙壁游戏结束。 开始动手 设计绘制设备 首先我计划从一个控制台游戏开始&#xff0c;需要一个控制台下的绘图机制&#xff0c;希…

基于Sen+MK的多站点不同季节和年尺度的SPEI趋势分析.md

再大的风浪&#xff0c;不过只短暂喧哗。 文章目录 前言1. 概述2.1 问题情景2.2 说明 2. 版本2.1 天津&#xff0c;2024年5月4日&#xff0c;Version1 3. 微信公众号GISRSGeography 一、数据1. 输入数据2. 输出数据 二、程序代码三、参考资料 前言 1. 概述 2.1 问题情景 假…

java-Spring-mvc-(请求和响应)

目录 &#x1f4cc;HTTP协议 超文本传输协议 请求 Request 响应 Response &#x1f3a8;请求方法 GET请求 POST请求 &#x1f4cc;HTTP协议 超文本传输协议 HTTP协议是浏览器与服务器通讯的应用层协议&#xff0c;规定了浏览器与服务器之间的交互规则以及交互数据的格式…

thinkphp6 workerman无法使用框架Db/model等类库方法解决方案

thinkphp6 workerman无法使用框架Db/model相关操作解决 执行安装相关扩展 composer require webman/gateway-worker引入成功后编辑服务类文件,直接展示代码 <?phpnamespace app\server\controller;use GatewayWorker\BusinessWorker; use GatewayWorker\Gateway; use Gate…

java异常.day30(Error,Exception)

Error和Exception说明 Error Error类及其子类表示的是Java虚拟机&#xff08;JVM&#xff09;无法或不应该尝试恢复的严重问题。这些问题通常是由JVM本身的问题、系统资源耗尽、或其他不可控的环境因素引起的。由于Error是不可恢复的&#xff0c;因此应用程序不应该尝试捕获和…

Cisco WLC 2504控制器重启后所有AP掉线故障-系统日期时间

1 故障描述 现场1台WLC 2504控制器掉电重启后&#xff0c;所有AP均无线上线&#xff0c; 正常时共有18个AP在线&#xff0c;而当前为0 AP在线数量为0 (Cisco Controller) >show ap sumNumber of APs.................................... 0Global AP User Name..........…

细胞自动机与森林火灾与燃烧模拟

基于 元胞自动机-森林火灾模拟_vonneumann邻域-CSDN博客 进行略微修改&#xff0c;解决固定方向着火问题&#xff0c;用了一个meshv2数组记录下一状态&#xff0c;避免旧状态重叠数据失效。 参数调整 澳洲森林火灾蔓延数学建模&#xff0c;基于元胞自动机模拟多模式下火灾蔓延…

大语言模型从Scaling Laws到MoE

1、摩尔定律和伸缩法则 摩尔定律&#xff08;Moores law&#xff09;是由英特尔&#xff08;Intel&#xff09;创始人之一戈登摩尔提出的。其内容为&#xff1a;集成电路上可容纳的晶体管数目&#xff0c;约每隔两年便会增加一倍&#xff1b;而经常被引用的“18个月”&#xf…

【C++题解】1659. 是否含有数字5

问题&#xff1a;1659. 是否含有数字5 类型&#xff1a;分支结构 题目描述&#xff1a; 请从键盘读入一个五位整数 n&#xff0c;判断其是否含有数字 5&#xff0c;如果含有数字 5 &#xff0c;请输出这个 5 位数各个位的和&#xff1b;如果不含数字 5 &#xff0c;请直接输出…

IoTDB 入门教程 基础篇⑧——数据库管理工具 | IDEA 连接 IoTDB

文章目录 一、前文二、下载iotdb-jdbc三、IDEA驱动四、IDEA连接数据库五、数据库应用六、其他 一、前文 IoTDB入门教程——导读 二、下载iotdb-jdbc 下载地址org/apache/iotdb/iotdb-jdbc&#xff1a;https://maven.proxy.ustclug.org/maven2/org/apache/iotdb/iotdb-jdbc/ 本…

记录vue报错问题 in ./node_modules/axios/lib/platform/index.js

今天这个问题困扰了我许久 报错内容如下&#xff1a; 最初一直以为是我没装axios&#xff0c;又重新装了一次&#xff0c;后面才发现是axios版本原因&#xff0c;真的总是被版本的原因困住真的很烦 解决方法如下&#xff1a; 将axios的版本改为1.5.0 1、打开项目的文件夹“…

探索LLM在广告领域的应用——大语言模型的新商业模式和新个性化广告的潜力

概述 在网络搜索引擎的领域中&#xff0c;广告不仅仅是一个补充元素&#xff0c;而是构成了数字体验的核心部分。随着互联网经济的蓬勃发展&#xff0c;广告市场的规模已经达到了数万亿美元&#xff0c;并且还在持续扩张。广告的经济价值不断上升&#xff0c;它已经成为支撑大…