8位字节对齐算法

2023-05-16

参考文章

//8bit对齐算法
void testAlign(){
    for (int i = 0; i <= 10; i++) {
        int align = align8Bit(i);
        printf("the align is %d\n", align);
    }
}
// 1byte 1字节对齐
unsigned int align8Bit(unsigned int n){
    return calc_alignFounction2(n, 8);
}
// 2byte 2字节对齐
unsigned int align16Bit(unsigned int n){
    return calc_alignFounction2(n, 16);
}
// 4byte 4字节对齐
unsigned int align32Bit(unsigned int n){
    return calc_alignFounction2(n, 32);
}

unsigned int calc_alignFounction1(unsigned int n,unsigned align){
    if (n / align * align == n) {
        return n;
    }
    return (n / align + 1) * align;
}

//** 此方法较好 */
/*
 算法说明:
 例如8位对齐要求,后三位为0.
 (align-1)表示后三位111.
 size+(aling-1)会导致进位。
 &~(aling-1)去除后面多余的。
 */
unsigned int calc_alignFounction2(unsigned int n, unsigned align){
    return (n + (align - 1)) & (~(align - 1));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

8位字节对齐算法 的相关文章

随机推荐

  • 2021-11-01 福州高速公路定位测试有感

    室内定位测试大大小小经历了数十次 xff0c 这次福州的高速公路隧道测试感触颇多 第一 强大的自驱力 xff1a 从测试安排出差伊始 xff0c 团队成员主动提出听从安排 xff0c 积极配合 xff1b 讨论测试计划和方案时 xff0c
  • New Timeline的Toolbar样式设计

    最近在做新版的Timeline xff0c Toolbar Menu 的功能基本完成 xff0c 因此把截图拿出来与各位博友分享一下 新版Timeline HTML版本 主页面 xff1a 这次主要讲解一下Toolbar Menu 的功能
  • VS改大小写的快捷键

    改成小写 xff1a Ctrl 43 U 改成大写 xff1a Ctrl 43 Shift 43 U 记得要选中要修改的一段英文
  • SQL两表之间:根据一个表的字段更新另一个表的字段

    1 写法轻松 xff0c 更新效率高 xff1a update table1 set field1 61 table2 field1 field2 61 table2 field2 from table2 where table1 id 6
  • 多边形面积计算公式

    function polygonArea points var i j var area 61 0 for i 61 0 i lt points length i 43 43 j 61 i 43 1 points length area 4
  • table合并单元格colspan和rowspan

    span style font family none code span style background color rgb 255 255 0 span style font family none code span style f
  • jQuery两个稳定版本的比较

    jquery历经了多个版本的更新 xff0c 版本上的比较貌似没什么必要性 xff0c 一般来说新的版本会比旧的版本各方面都略有提升 xff0c 但由于新版中增加了各种新的功能 xff0c 难免会引起bug的发生 评估一个版本是否适合当前开
  • (原创)从addView讲到LayoutParams

    Android开发中 xff0c 有时候要动态添加布局 xff0c 这时候我们都会采用一个叫做addView的方法 xff0c 那么就先来讲一讲这个方法 addView是viewGroup中的的方法 xff0c 故而是用来给布局添加子控件用
  • 室内定位简介

    室内定位定义 xff1a 室内定位是指在室内环境中实现位置定位 xff0c 主要采用无线通讯 基站定位 惯导定位等多种技术集成形成一套室内位置定位体系 xff0c 从而实现人员 物体等在室内空间中的位置监控 室内定位需求 xff1a 在室外
  • 命令行提交代码到gitLab服务器

    1 创建项目 xff0c 前提是gitLab服务器已经搭建完成 xff0c 在gitLab个人账户下创建一个项目 xff0c 项目名称自己定义 xff0c 如图 xff1a 2 拷贝本地代码到指定目录 xff0c 一般自己创建一个固定的代码
  • VS 附加到进程调试技巧

    有些时候碰到自己开发的程序嵌入到别人的框架中 xff0c 而在接口的地方出了问题 xff0c 而又不方便将自己的模快加入到别人的工程中 有很多相关的文件 xff0c 还有mster页面等 xff0c 这个时候VS的附加到进程调试变得不可或缺
  • Request和Response详解

    Request 和 Response 对象起到了服务器与客户机之间的信息传递作用 Request 对象用于接收客户端浏览器提交的数据 xff0c 而 Response 对象的功能则是将服务器端的数据发送到客户端浏览器 一 Request对象
  • 人最宝贵的东西是生命

    钢铁是怎样炼成的 人最宝贵的东西是生命 生命属于人只有一次 一个人的生命是应该这样度过的 当他回首往事的时候 他不会因虚度年华而悔恨 也不会因碌碌无为而羞耻 这样在临死的时候 他才能够说 39 我的生命和全部的经历 都献给世界上最壮丽的事业
  • 高性能的Mysql读书笔记系列之五(创建高性能的索引)

    前言 xff1a 索引 xff08 在MySQl中也叫做 键 xff08 key xff09 xff09 是存储引擎用于快速找到记录的一种数据结构 索引对于良好的性能非常关键 尤其是当表中的数据量越来越大时 xff0c 索引对性能的影响愈发
  • Result Maps collection already contains value for xxx.xxx.dao.BaseResultMap错误

    前言 xff1a 我们在实际开发项目中 xff0c 有的时候会用到mybatis的逆向工程 xff0c 这个东西在某种程度的确很省事 xff0c 但有时候也会因此出现bug 这篇文章讲解下如何解决题目中的bug 正文 xff1a 一 复现问
  • Android DataBinding笔记

    官网介绍 xff0c DataBinding是用于将数据的和视图绑定在一起的支持库 xff0c 特点是只需要在视图定义的xml中编写绑定信息 xff0c 减少在代码中的视图于数据的交互逻辑 这样可以分离数据和视图 xff0c 减少这两个模块
  • Android:如何使用ViewBinding(Kotlin简易版)

    Android xff1a 如何使用ViewBinding xff08 Kotlin简易版 xff09 最近这段时间在学习Kotlin xff0c 突然发现谷歌已经把kotlin android extensions插件废弃 xff0c 目
  • CentOS7 systemctl 编写自定义服务

    编辑服务文件 vi usr lib systemd system zabbix server service Unit 此部分主要用于描述 Description 61 Zabbix Server 描述服务 After 61 syslog
  • (原创)解决APP进程被杀死出现的一些坑

    这几天在开发中遇到了这样一个问题 当打开的App数量达到一定数目时 原先的App进程会被系统杀死 然后再次进入这个被杀死的App时 发现了一些异常 经过排查 xff0c 是viewpager的getitem方法没有被调用 通过网上的一些信息
  • 8位字节对齐算法

    参考文章 8bit对齐算法 void testAlign for int i 61 0 i lt 61 10 i 43 43 int align 61 align8Bit i printf 34 the align is d n 34 al