乱七八糟的笔记(0x7f7f7f7f和0x7fffffff)

本文详细解析了整型变量的最大值及其溢出情况,解释了int类型在达到最大值0xfffffff(等于2147483647)后的溢出行为,展示了一个具体的例子,即当数值超过此最大值时如何变为负数。

int最大值:0xfffffff = 2147483647

2147483648溢出为-2147483648

0x7f7f7f7f = 2139062143


感谢 ???1?19 指出错误

在IT领域,`0x7fffffff` 是一个用十六进制表示的数值。在32位有符号整数的表示体系中,它有着特定的含义用途。 ### 含义 在32位有符号整数采用补码表示的情况下,`0x7fffffff` 是最大的正整数。32位有符号整数的最高位是符号位,0表示正数,1表示负数。`0x7fffffff` 的二进制表示为 `0111 1111 1111 1111 1111 1111 1111 1111`,其十进制值为 `2147483647`。由于符号位为0,所以它是一个正数,并且是32位有符号整数所能表示的最大正数。 ### 用途 - **作为最大值边界**:在算法设计编程中,`0x7fffffff` 常被用作一个极大值,用于初始化变量或者作为边界条件。例如,在求最小值的算法中,可以将最小值初始化为 `0x7fffffff`,然后在遍历过程中不断更新这个值。 ```python min_value = 0x7fffffff numbers = [10, 20, 5, 30] for num in numbers: if num < min_value: min_value = num print(min_value) ``` - **表示无穷大**:在一些图算法(如Dijkstra算法)中,需要一个表示无穷大的值来初始化距离数组。`0x7fffffff` 可以近似地表示无穷大,因为在实际应用中,很少有数值会超过这个值。 ```python import heapq def dijkstra(graph, start): distances = {node: 0x7fffffff for node in graph} distances[start] = 0 pq = [(0, start)] while pq: current_distance, current_node = heapq.heappop(pq) if current_distance > distances[current_node]: continue for neighbor, weight in graph[current_node].items(): distance = current_distance + weight if distance < distances[neighbor]: distances[neighbor] = distance heapq.heappush(pq, (distance, neighbor)) return distances graph = { 'A': {'B': 1, 'C': 4}, 'B': {'A': 1, 'C': 2}, 'C': {'A': 4, 'B': 2} } start_node = 'A' result = dijkstra(graph, start_node) print(result) ```
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值