整数溢出机制 C

简介: 整数溢出机制 C

前言

这是在写一道关于需要处理整数溢出的运算的题时学到的概念,一般对于long long都承载不了的数我们一般用大整数都能解决,但是对于只是判断整数是否溢出时了解整数溢出的机制有时候能够事半功倍。


一、无符号整型溢出

对于unsigned整型溢出,C标准在这一方面是有定义的:“溢出后的数会以2^(8*sizeof(type))作模运算”,如果一个unsigned char溢出了,需要把溢出的值与256求模

二、有符号整型溢出

对于signed整型的溢出,C的规范定义是“undefined behavior”,虽然没有定义,各编译器可自己实现,大部分的溢出机制还是一样的。

有符号整型溢出可以分为向上溢出和向下溢出。假设用k个字节表示一个整型变量, 那么这个变量可以表示的有符号整数的范围是-2^(8k-1) ~ 2^(8k-1) – 1,两个正整数或者两个负整数相加就有可能超过这个整型变量所能表示的范围, 向上超出>2^(8k-1) – 1称之为向上溢出, 向下超出<-2^(8k-1) 我们称之为向下溢出

先说对于所有溢出情况的结论,当溢出时(以signed char举例),我们会取结果的低八位,并对其表示的符号位判断该数字的正负

对于两数之和是否溢出的判断,这时候我们就可以得出:两个正数相加后溢出结果将 <0,两个负数相加后溢出结果将>=0

相关文章
|
3月前
|
监控 算法 API
拼多多API团购活动自动化:拼单成功率暴涨的幕后技术解析
本方案通过API自动化引擎破解传统团购效率低、响应慢、数据分散等问题,实现库存、价格、成团的实时联动。实战数据显示,成团时效提升74%,拼单成功率高达92%,人力成本下降80%。某生鲜商家接入后,月GMV突破500万元,成团率高达98.3%。API赋能团购,开启电商效率新纪元。
180 0
|
C语言 Perl 存储
优化求解器之MPS文件的格式简介
在使用MindOpt优化求解器解决实际问题时,其中重要的一环在于如何建立优化模型,以及存储优化模型以便于作为求解器的输入文件。存储优化模型的文件,其关键在于定义一种清晰的格式,用来说明优化模型的数学结构和相关的数据。接下来我们将发布一系列文章,对常见的MPS/LP等格式的模型文件和命名规范进行简要的介绍。
优化求解器之MPS文件的格式简介
|
4月前
|
NoSQL Redis UED
redis数据迁移、数据导出和导入用什么工具
用户体验好的客户端,我建议使用yunedit-redis来做数据迁移,因为它支持图形化,还支持多种导出方式。 yunedit-redis它支持全库导出,也支持选择部分key导出,还支持用*号表达式导出。
|
8月前
|
编解码 安全 JavaScript
《深入剖析鸿蒙生态原生应用:一次开发多端部署的技术革新》
鸿蒙生态通过“一次开发多端部署”技术,重新定义了应用开发模式。基于ArkTS语言与ArkUI框架,结合HUAWEI DevEco Studio工具,开发者可高效构建跨设备应用,实现无缝流转与协同工作。这一技术不仅降低了开发成本,提升了用户体验,还推动了全场景智能生态的繁荣。尽管面临性能优化与安全保护等挑战,但随着技术进步,鸿蒙将引领万物互联新时代,带来更智能便捷的生活体验。
289 0
|
NoSQL 应用服务中间件 Linux
宝塔linux面板命令大全
宝塔linux面板命令大全
284 2
|
11月前
|
SQL 弹性计算 安全
阿里云服务器租用价格:包年包月收费标准与最新活动价格参考
本文为大家分享阿里云服务器包年包月收费标准,云服务器最新活动价格,以及后续费挂载数据盘、设置密码和安全组等操作教程,以供参考。
|
JavaScript
IDEA打开vue项目并运行
IDEA打开vue项目并运行
692 1
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
477 3
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
|
自然语言处理 索引 Python
详解模板渲染引擎 jinja2
详解模板渲染引擎 jinja2
1045 10
|
Linux 数据安全/隐私保护
在Linux中,什么是文件权限?什么是rwx权限模型?
在Linux中,什么是文件权限?什么是rwx权限模型?