c/c++ 奇技淫巧(一些c语言的技巧)

yizhihongxing

c/c++ 奇技淫巧(一些c语言的技巧)

1. 变量交换

有时我们需要交换两个变量的值,一般的做法是使用中间变量,但是有一个巧妙的方法可以不使用中间变量交换两个变量的值。

int a = 10, b = 5;
a -= b; // a = 5
b += a; // b = 10
a = b - a; // a = 5

2. 求绝对值

结合位运算,可以使用以下代码快速计算一个数的绝对值:

int abs(int x) {
    int y = x >> 31; // 取x的符号位
    return (x ^ y) - y; // x与y异或,再减去y就是绝对值
}

3. 取一个数的倒数

除了直接使用1.0/x计算,还可以使用以下代码:

double inv(double x) {
    int temp = *(int*)&x;
    temp = 0x7FFFFFFF - temp; // 将符号位置0
    return *(double*)&temp;
}

以上就是c/c++奇技淫巧的一些示例,希望对大家有所启发。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c/c++ 奇技淫巧(一些c语言的技巧) - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言实现通用数据结构之通用集合(HashSet)

    C 语言实现通用数据结构之通用集合(HashSet) 什么是 HashSet HashSet 是一种常用的数据结构,其实质就是一个无序不重复的元素集合。在 C 语言中,你可以使用 HashSet 存储任何类型的数据。 HashSet 的优点在于: 独立性,只关心数据的存储和操作,而不必关心数据类型; 方便性,对于处理过程,比起普通数组无需考虑顺序问题。 实现…

    C 2023年5月23日
    00
  • C++实现洗牌发牌排序功能的示例代码

    下面我将为你讲解“C++实现洗牌发牌排序功能的示例代码”具体攻略。 1. 洗牌发牌排序功能 1.1 功能描述 洗牌发牌排序是常见的扑克牌游戏中的基本功能,其具体流程如下: 洗牌:将一副牌按随机顺序重新排列; 发牌:将洗牌过后的牌等分给参与游戏的玩家; 排序:玩家根据手中牌的大小进行排序。 1.2 示例代码 下面将通过示例代码来讲解如何实现洗牌、发牌和排序功能…

    C 2023年5月30日
    00
  • 详解Redis基本命令与使用场景

    详解Redis基本命令与使用场景 Redis介绍 Redis是一个高性能的键值存储系统,支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。它主要应用于分布式缓存、消息队列、排名系统等场景,因为它拥有快速、高效和稳定性的特点。 Redis基本命令说明 存储命令 SET key value:将值value关联到key这个键上 SETEX key se…

    C 2023年5月23日
    00
  • C程序 检查闰年

    C程序 检查闰年使用攻略 简介 本文将介绍如何使用C程序来检查一个年份是否为闰年。闰年是指能被4整除的年份,但是不能被100整除的年份,或者能够被400整除的年份。文章将包括程序示例和思路讲解。 示例代码 下面是一个简单的C程序,它使用函数来检查一个给定年份是否为闰年。该函数返回一个整数值,如果该年份是闰年则返回1,否则返回0。 #include <s…

    C 2023年5月9日
    00
  • 详解JS变量存储深拷贝和浅拷贝

    详解JS变量存储深拷贝和浅拷贝 什么是拷贝? 拷贝是将原来的变量复制一份新的变量,使得新的变量与原变量相互独立,对新的变量的修改不会对原变量产生任何影响。 浅拷贝 在 JS 中,浅拷贝指的是将原始对象的引用复制给新的对象,如果原始对象发生变化,则新对象也会随之发生变化。示例如下: const originalObj = { a: { b: 1 }, c: 2…

    C 2023年5月23日
    00
  • 用c语言实现《狼人杀》游戏发牌系统

    让我来为您详细讲解“用c语言实现《狼人杀》游戏发牌系统”的完整攻略。 首先需要明确的是,狼人杀游戏中的牌有很多种,包括狼人牌、村民牌、预言家牌等等。每局游戏需要给每位玩家分配一个随机的牌,因此开发牌局发牌系统需要实现以下功能: 随机洗牌,保证每次发牌的牌序不同 根据牌的数量和玩家人数,将不同的牌分配给玩家 显示每个玩家的牌 下面是一个实现《狼人杀》游戏发牌系…

    C 2023年5月24日
    00
  • Java异常处理深入理解

    Java异常处理深入理解攻略 对于Java开发者来说,异常处理一直都是一个重要的话题。从Java最初的版本开始,异常处理就被作为重要的一个特性来加以强调。在本篇文章中,我将会深入讲解Java异常的相关知识。 什么是Java异常? 在Java中,异常是指程序执行过程中出现的错误情况。当程序发生异常时,Java运行时系统便会创建一个“异常对象”,并将这个异常对象…

    C 2023年5月23日
    00
  • C语言中如何进行多语言支持?

    在C语言中进行多语言支持,其主要的实现方式是通过字符串本地化来实现的。具体步骤如下: 1. 设计国际化字符串 首先,我们需要将所有需要支持的语言的字符串收集到一个字符串池中,并将它们按照关键字进行分类,这个过程被称为字符串本地化(Localization)。例如: // 中文 char *zh[] = { "你好", "世界&q…

    C 2023年4月27日
    00
合作推广
合作推广
分享本页
返回顶部