如何用C语言编写一个函数实现向上取整的算法?

2026-04-12 09:050阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计881个文字,预计阅读时间需要4分钟。

如何用C语言编写一个函数实现向上取整的算法?

目录:C语言向上取整技巧

C语言向上取整的一点技巧:使用整数N除以M,要求向上取整,可以使用以下公式:int n=(N + M - 1) / M;

简化后就是:int n=(N - 1) / M + 1; 或者int n=N / M;

目录
  • c语言向上取整计算
  • c语言向上取整的一点技巧

c语言向上取整计算

用整数N 除以 M,要求向上取整数

int n = (N + M -1) / M ;

简化后就是:

int n= (N - 1) / M +1;

最笨的办法

int n = N / M + ((N % M != 0) ? 1 : 0 )

c语言向上取整的一点技巧

做底层或者说驱动开发时,经常会遇到一些硬件限制,比如 STM32 有些寄存器要求 16 bit 访问、32 bit 访问,否则可能引发 Hardfault 中断;再比如擦除 flash 扇区时,会要求整块擦除。这些都是硬件决定的,必须这样做。

阅读全文

本文共计881个文字,预计阅读时间需要4分钟。

如何用C语言编写一个函数实现向上取整的算法?

目录:C语言向上取整技巧

C语言向上取整的一点技巧:使用整数N除以M,要求向上取整,可以使用以下公式:int n=(N + M - 1) / M;

简化后就是:int n=(N - 1) / M + 1; 或者int n=N / M;

目录
  • c语言向上取整计算
  • c语言向上取整的一点技巧

c语言向上取整计算

用整数N 除以 M,要求向上取整数

int n = (N + M -1) / M ;

简化后就是:

int n= (N - 1) / M +1;

最笨的办法

int n = N / M + ((N % M != 0) ? 1 : 0 )

c语言向上取整的一点技巧

做底层或者说驱动开发时,经常会遇到一些硬件限制,比如 STM32 有些寄存器要求 16 bit 访问、32 bit 访问,否则可能引发 Hardfault 中断;再比如擦除 flash 扇区时,会要求整块擦除。这些都是硬件决定的,必须这样做。

阅读全文