---
title: 乘除法优化
description: "CPU在处理不同指令的时候花费的指令周期是不同的，移位运算和加减运算只需要1个指令周期，而乘法运算需要3个指令周期，除法运算需要6~20个指令周期。因此应使用指令周期短的指令来实现相同功能，能够有效提高程序运行速度。"
url: https://www.hikunpeng.com/document/detail/zh/perftuning/tuningtip/kunpengtuning_12_0088.html
sourcePath: /source/zh/perftuning/tuningtip/kunpengtuning_12_0088.html
indexId: 6c4bb51cdfe24f83e7c432dcfec35cba18a67e4d8bcbeecc562c9c609a403b4958
---
# 乘除法优化

#### 原理

CPU在处理不同指令的时候花费的指令周期是不同的，移位运算和加减运算只需要1个指令周期，而乘法运算需要3个指令周期，除法运算需要6~20个指令周期。因此应使用指令周期短的指令来实现相同功能，能够有效提高程序运行速度。


#### 修改方式

- 使用移位运算替换乘除运算
  修改前：

```
int a = 8;
int b = 2;
int c = a / b;
int d = a * b;
```


  修改后：

```
int a = 8;
int c = a >> 1;
int d = a << 1;
```


- 使用乘法运算替换除法运算
  修改前：

```
float a = x / 2.13;
```


  修改后：

```
const float b = 1.0 / 2.13;
float a = x * b;
```
