取整数绝对值的宏定义

文件处理与宏定义编程实例 本文包含多个编程实例,涵盖从文件中读取最长行、统计数字频次、二进制文件数据更新、成绩排序,以及使用宏定义实现绝对值、奇偶判断、最大值计算等功能,重点展示C语言宏的正确用法与常见错误修正。 阅读详情
#include <iostream>
#include <assert.h>
#include <algorithm>
#include <hash_set>
#include <vector>
#include <string>
#include <assert.h>
#include <list>
using namespace std;
#define abss(x) ((  1-((((x)>>(sizeof(x)*8-1))&1)<<1))*(x))
int main()
{
	int a=-9;
	int b=8;
	int c=0;
	int d=-100;
	cout<<"int: "<<endl;
	cout<<a<<" "<<abss(a)<<endl;
	cout<<b<<" "<<abss(b)<<endl;
	cout<<c<<" "<<abss(c)<<endl;
	cout<<d<<" "<<abss(d)<<endl;
	long long xx=-1999;
	cout<<endl<<"long long "<<endl<<xx<<" "<<abss(xx)<<endl;
	char ch=a+128;
	cout<<endl<<"char "<<endl<<ch<<" "<<abss(ch)<<endl;

	return 0;
}


 

1.为了兼容各种宽度的整数,采用sizeof

2.为了兼容右移操作时,左边补0还是补符号位的不同,右移之后与1做与操作

 


 
BITMAP的一个实现:
class BitMap
{
public:
 static const int N=1000;
 BitMap(){memset(an,0,N*4);}
 void SetBit(int x)
 {
  an[(x>>5)] |= (1<<(x%32));
 }
 void ClearBit(int x)
 {
  an[(x>>5)] &= ~(1<<(x%32));
 }
 int GetBit(int x)
 {
  return (an[x>>5] >> (x%32))&1; 
 }
private:
 int an[N];
};
C语言宏定义中的绝对值计算 本文介绍了C语言中宏定义的使用方法,重点讲解了如何通过宏定义实现绝对值计算。通过#define ABSOLUTE(x) ((x) < 0 ? -(x) : (x))的宏定义示例,展示了其类型无关性和不依赖标准库的优点。文章提供了测试代码验证宏的正确性,并指出了使用宏时需要注意的副作用和溢出问题。这种宏定义方法既能简化代码,又能提高可读性和维护性,是C语言编程中值得掌握的技巧。 阅读详情

相关推荐

27、整数运算详解与应用

本文详细介绍了编程中常见的整数运算,包括比较、算术、赋值、绝对值、取模、指数、最大值最小值、符号等运算,并探讨了它们在实际场景中的应用。通过宏定义和具体示例,展示了如何高效地实现这些运算,从而提升程序性能。文章最后以一个计算器应用程序为例,综合展示了整数运算的用途和重要性。

whisky的博客 75

【C语言笔记】【宏定义系列】 绝对值

【C语言笔记】【宏定义系列】 绝对值 abs 宏定义系列内容。用于记录各式各样有用或者没用的宏定义☺。 宏定义说明 用于计算数值的绝对值,支持有符号和无符号的long,int,short,char类型。 例如25的绝对值是25,-26的绝对值是26。 该宏定义存在于linux kernel 2.6.38 - 4.3.6中。 实现代码 #define abs(x) ({ \ long ret; \ if (sizeof(x) == sizeof(long)) { \ long

5310

【Get深一度】小波分析概念1——紧支撑集是什么意思,通俗解释

最近学到小波,在仿真中也用到了紧支撑函数;紧支撑性越好,说明能量越集中;用最通俗的话来讲,紧支撑是这样的: 对于函数f(x),如果自变量x在 0附近的取值范围内,f(x)能取到 C; 而在此之外,f(x)取值为 0; 那么这个函数f(x)就是紧支

Trey_优快云 的优快云博客 8348

c++宏定义:从一个简单的绝对值开始

c++宏展开是在编译的过程中执行的过程,不涉及具体的计算,展开的方式只是简单的替换,可以达到代码复用和增强代码可读性的效果。展开过程不会考虑运算符之间的优先级,只做简单的符号层面的替换。

smallflyingpig的专栏 3579

FPGA图像处理入门 ZYNQ7020 图像中值膨胀腐蚀滤波

图像处理的三种滤波 中值滤波应用较为广泛 综合膨胀和腐蚀可以实现边缘检测。

Coast_的博客 715

基于近场动力学的二维疲劳裂纹扩展模型_近场动力学数值模拟的程序实现(1)——引言...

参考书目W. H. Gerstle. 2015. Introduction to Practical Peridynamic: Computational Solid Mechanics Without Stress and Strain.E.Madenci, A.Barut, M.Dorduncu. Peridynamic Differential Operator for Numerical ...

weixin_39764603的博客 1203

c语言转换绝对值函数的程序,c语言abs(c语言求绝对值的程序)

先答对者为最佳答案!abs( )是C语言中对整型数据进zd行取绝对值的函数。具体用法可以参考下例:int a=-5, b; b = abs(a); printf("%d\n", b); // 输出结果为5注:该专函数的参数值必须是int.原型:int abs(int j); 头文件: 原型:double fabs(double x); 头文件: 参考资料:Linux Programmer's Ma...

weixin_33600827的博客 3570

AUTOSAR RTE配置实战:从ECU分区到Task映射的完整指南

本文提供了一份AUTOSAR RTE配置的完整实战指南。从创建ECU分区、定义OS任务,到实现Runnable Entity与Task的精确映射,详细解析了每一步的操作要点与常见陷阱。文章结合配置工具界面,旨在帮助开发者高效完成RTE配置,确保系统实时性与数据一致性,是掌握AUTOSAR核心开发流程的实用参考。

weixin_29228203的博客 486

C 语言绝对值函数abs实现技巧

C语言中,函数int abs(int num); 用于求整数的绝对值, 位于头文件 <math.h>, 返回值为参数 num 的绝对值。 今天来看一下这个函数有几种实现方式呢 一、利用 “-” (负号)运算符 负号运算符可用于得到操作数的相反数 因此,可以参考如下实现 : int _abs(int num) { return num < 0 : -num : num; } 二、利用整数的存储原理 我们知道,正负数在内存中已补码形式存储,而正负数的补码规则如下: ..

qq_34105990的博客 8248

Qt QChart实战:从零打造一个实时温度监控仪表盘(附完整源码)

本文详细介绍了如何使用Qt QChart模块从零构建一个工业级实时温度监控仪表盘。通过实战案例,展示了波形图的绘制、坐标轴配置、数据流模拟等关键技术,并提供了完整的源码实现,帮助开发者快速掌握Qt在数据可视化领域的应用。

weixin_42537919的博客 243

不会C# Winform用户界面设计?是因为没有掌握这些控件(建议收藏)

文章目录6.1 常用控件6.1.1 单选按钮(RadioButton)6.1.2 复选框(CheckBox)6.1.3 框架1. 面板控件Panel2. 分组框GroupBox3. TabControl控件6.1.4 应用实例6. 2 列表框和组合框6.2.1 列表框(ListBox)6.2.2 组合框(ComboBox )6.2.3 应用实例6.3 用户交互界面6.3.1 滚动条和进度条6.3.2 定时器6.3.3 菜单设计菜单设计概述MenuStrip和ContextMenuSt

智慧空间实验室 2920

字符串比较,不区别大小写

<br />//取绝对值的宏<br /> #define IABS(x) (((x)>0)?(x):(-(x)))<br /> <br /> <br /> <br />//不区别大小写 字符串比较,<br /> int zkp_strcmp(const char *s1, const char *s2)<br /> {<br />     while (*s1 != '/0' && (*s1 ==  *s2 || (IABS(*s1 - *s2) == 'a' - 'A')))<br />    

Oo_Oo_的专栏 1267

AgentScope 实战训练营-构建元规划智能体(Meta Planner Agent)—— 从 0 到 1 完整实现

本文介绍了基于AgentScope框架开发的元规划智能体(Meta Planner Agent)系统。该系统通过任务拆解和子代理编排机制,实现复杂任务的自动化处理。核心架构分为用户层、规划器层和子代理层,其中规划器作为"项目经理"负责任务分解、创建子代理并协调执行流程。关键技术包括AgentScope多智能体框架、DashScope大语言模型、PlanNotebook计划管理工具等。

program哲学 359

c语言 求两个整数的最大公约数

公约数,最大公约数,辗转相除算法,c语言 徐权

徐权的博客 1525

com.sap.aii.af.service.cpa.CPAObjectNotFoundException: Couldn‘t retrieve inbound binding

错误消息:错误截图:该错误通常表示在集成配置中,未找到与特定消息匹配的入站绑定(Inbound Binding)。具体而言,错误消息中的 P/S/A(Party/Service/Action)值未在配置中找到对应的入站绑定。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 373

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

大整数算法[06] 绝对值加法

上一篇文章简单讲解了移位操作是如何进行的,最后简要分析了算法时间复杂度。这次介绍绝对值加法,这个算法是构建有符号数加法减法的重要模块之一。绝对值计算的算法是高度优化的,本身的时间复杂度为 O(n),但是如果被高级的算法调用,其复杂度很容易被提高到 O(n^2) 甚至 O(n^3)。绝对值加法只计算两个大整数的绝对值之和:z = |x| + |y|,之所以要先解决绝对值的计算,是因为...

weixin_33965305的博客 672

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

43 C 语言 math.h 库函数详解:绝对值、数学运算、取整舍入、分解组合、三角反三角、双曲函数、宏定义常量

本文全面解析 C 语言 <math.h> 库函数,涵盖绝对值、数学运算、取整舍入、分解组合、三角/反三角及双曲函数,并列举关键宏定义常量,附实用代码示例,助力开发者高效掌握数学函数应用,提升编程效率与代码质量。

大模型全栈工程师 · Thanks_ks 2343

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

abs int 宏定义_C语言之函数与宏定义。

原标题:C语言之函数与宏定义。大家好!今天我们来学习C语言的函数与宏定义。首先我们来学习函数的概念。在C语言中函数可以分为两类,一类是由系统定义的标准函数,这类函数又被称为是库函数,其函数的声明一般是放在系统的include目录下的以.h为后缀的头文件中,如在程序中要用到某个库函数,必须在调用该函数之前用#include命令将库函数信息包含到本程序中。另一类函数是用户自定义函数,这类函数是根据问题...

weixin_35899659的博客 339

B2056 求整数的和与均值 题解

B2056 求整数的和与均值 题解

yaosichengalpha的博客 1272

C:宏定义 zz

<br />使用宏时,用圆括号括住每个参数,并括住宏的整体定义;一般来说,在宏中不要使用自增或自减运算符。<br /><br /> <br />下面是一些常见的宏定义:<br /> <br />[1]最值<br /> #define MIN(x, y)   (((x) < (y)) ? (x) : (y))<br /> 求两者间的较小者<br /> #define MAX(x, y)   (((x) > (y)) ? (x) : (y))<br /> 求两者间的较大者<br /> #define

跌打滚爬中向前的专栏 831

宏定义判定x是否为整数_腾讯50题---整数翻转(简单)

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123 输出: 321示例 2:输入: -123 输出: -321示例 3:输入: 120 输出: 21注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。解题思路:先取数字的绝对值,方便后续统一处理;将数...

weixin_39695374的博客 239

JSK-399 绝对值最小的数【大数】

绝对值最小的数

海岛Blog 673

abs int 宏定义_OC常用的数学函数及宏定义

一、函数1、 三角函数double sin (double);正弦double cos (double);余弦double tan (double);正切2 、反三角函数double asin (double); 结果介于[-PI/2, PI/2]double acos (double); 结果介于[0, PI]double atan (double); 反正切(主值), 结果介于[-PI/2, ...

weixin_39752352的博客 338

初学快排解决绝对值排序

输入n(n<=100)个整数,按照绝对值从大到小排序后输出。题目保证对于每一个测试实例,所有的数的绝对值都不相等。 Input 输入数据有多组,每组占一行,每行的第一个数字为n,接着是n个整数,n=0表示输入数据的结束,不做处理。 Output 对于每个测试实例,输出排序后的结果,两个数之间用一个空格隔开。每个测试实例占一行。 Sample I...

weixin_30904593的博客 105

ios math 那个头文件_IOS开发入门之iOS:PrefixHeader / 头文件 / 宏定义

本文将带你了解IOS开发入门之iOS:PrefixHeader / 头文件 / 宏定义,希望本文对大家学ios有所帮助。宏定义,不一定放在PCH文件,可能放在一个.h文件,再用PCH包含进来。1、屏幕尺寸// 屏幕尺寸#define kSCREEN_WIDTH [UIScreen mainScreen].bounds.size.width#define kSCREEN_HEIGHT ...

weixin_39844963的博客 143
上一篇: 实现strstr函数
下一篇: 求整数的位模式中包含几个1
纯属虚构
博客等级 码龄17年 86粉丝 194原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值