用宏定义字节对齐

2023-11-16

有时候我们需要对一个数字节对齐。

实例代码:

#include <stdio.h>
 
#define CEILING_2_POWER(x,a)     ( ((x) + ((a) - 1) ) & ( ~((a) - 1) ) )//字节对齐
 
#define A(x,a)     ((x) + ((a) - 1) )//先加
 
#define B(x,a)     ( ~((a) - 1) )//再用低位取零
int main( )
{
    unsigned int i = 15, j = 16;
	printf("0x%x\n", CEILING_2_POWER(i,j));
	printf("0x%x\n", A(i,j));
	printf("0x%x\n", B(i,j));
		
    return 0;
}

运行结果:

0x10
0x1e
0xfffffff0

原文
http://blog.csdn.net/yuanbinquan/article/details/42738025

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用宏定义字节对齐 的相关文章

  • [1215]小米手机USB安装出现当前设备已被临时限制

    小米系列手机 开发者版本 之 USB安装出现当前设备已被临时限制 USB安装出现当前设备已被临时限制 3 2 解决方案 1 更换SIM卡 更换小米账号 2 重新启动手机 即可解决 实战分析 SIM卡数据异常 触发限制代码 3 2 USB安装
  • Uncaught Error: useNavigate() may be used only in the context of a <Router> component.

    出现此问题的原因是因为使用useNavigate的模块没有被react的路由所包围 导致路由并不能在这个层面上使用 解决办法有两种 一 将这个模块被路由模块包围 export default memo gt return
  • React-Router实战:NavLink

    基础 1 引入使用 import NavLink from react router dom
  • rs232接口_串口,COM口,TTL,RS232,RS485,UART的区别详解

    在电路设计或者实际应用过程中 我们往往会遇到下面几种接口 在下面文章中我们详细介绍串口 COM口 RRL RS232 UART几种接口之间的区别与联系以及常见的连接使用方式 串口 串口 即串行接口 与之相对应的另一种接口叫并口 并行接口 两
  • 树莓派做无线网络服务器,树莓派做无线热点

    虽然之前我们使用树莓派成功刷入 OpenWrt 来做路由器使用 不过娱乐性却显得比较单一 无法方便地安装其他各种软件 从源码编译也会更加麻烦 经常是缺少各种头文件 因此 今天我们决定使用官方的 Raspbian 系统来设置树莓派作为一个无线
  • 学习编程过程中-->遇到的错误

    文章目录 学习编程过程中 gt 遇到的错误 吕招焕 1 java sql SQLException Parameter index out of range 2 gt number of parameters which is 1 详情如下
  • 使用 Blazor 开发内部后台(二):了解 Blazor 组件

    James 转载技术社区中一位朋友最新的文章 介绍自己为公司的 WebForm 遗留系统使用 Blazor 重写前端 UI 的经历 什么是Blazor组件 Blazor 应用是使用 Razor 组件构建的 组件是用户界面 UI 的自包含部分
  • 题目 1548: [蓝桥杯][算法提高VIP]盾神与砝码称重

    时间限制 1Sec 内存限制 128MB 提交 782 解决 331 题目描述 有一天 他在宿舍里无意中发现了一个天平 这 个天平很奇怪 有n个完好的砝码 但是没有游码 盾神为他的发现兴奋不已 于是他准备去称一称自己的东西 他准备好了m种物
  • 矩阵树定理

    启蒙 http zhengruioi com contest 1416 T1 T2的10分暴力 后面是论文科技 不搞了 https www luogu com cn problem P6178 O n 3
  • 你不知道的javascript之函数作用域和块作用域(一)

    立即执行函数表达式 IIFE 1 使用匿名函数表达式 var a 2 function IIFE var a 3 console log a 3 console log a 2 2 当作函数调用并传递参数进去 var a 2 functio
  • 机器学习总结

    目录 一 连续特征的离散化 在什么情况下将连续的特征离散化之后可以获得更好的效果 二 LabelEncoder和OneHotEncoder 在特征工程中的应用 三 神经网络 深度学习 四 反向传播与梯度下降 五 聚类算法 六 机器学习 样本
  • python+Opencv数字图像处理入门到精通

    1 环境配置 在python 3 4 2 之后 一些算法被申请了专利 可能不能在使用 因此 建议使用的版本为 3 4 1 15或3 4 0 15 在Anaconda下安装opencv需要执行如下两个指令 pip install opencv
  • "免费!中文!10个最佳Python学习网站推荐

    分享资料 一起学习 我是小白 微信 tlxx233 备注 888建了个微信程序员学习群 互相解答问题 有需要的同学可以加我微信进群 10个免费学习 Python 的中文网站 如果你想要学习 Python 那么这篇文章将会介绍 10 个免费的
  • Linux和Windows下使用Syslog库

    本文档描述如何在Windows和Linux下使用Syslog库 在Linux下GNU库中已经自带有syslog库 但是在Windows下的标准库中没有syslog库 从网上可以找到syslog的开源代码实现 接口函数基本上与Linux一致
  • 高精度运算c++

    高精度运算c 前言 加法 减法 乘法 除法 求余 全部代码 完 前言 采用c 的stl库实现高精度的加减乘除 以及求余运算 希望可以帮助到大家 加法 string add big string a string b string 加 str
  • String和基本数据类型的比较方式

    package com test author xlj 简单的比较方式 public class Test public static void main String args System out println 192 168 101
  • springboot项目启动时:Failed to retrieve application JMX service URL

    application properties配置有问题 检查即可

随机推荐

  • Cannot find any provider supporting AES/CBC/PKCS5Padding

    1 出现的问题 java lang RuntimeException java security NoSuchAlgorithmException Cannot find any provider supporting AES CBC PK
  • Elastic Search 安装部署最全教程(Docker)

    一 部署单点ES 1 首先创建网络 因为我们还需要部署kibana容器 因此需要让es和kibana容器互联 这里先创建一个网络 docker network create es net 2 加载镜像 docker pull elastic
  • 刀片服务器 如何增加硬盘,IBM为刀片服务器添加新SAS及固态硬盘

    在调整过X64产品线后 我们又收到IBM将为服务器产品线添加新SAS硬盘及固态硬盘的消息 上周IBM刚发布了一款小尺寸的SAS硬盘 它只有2 5英寸 而之前的硬盘基本上都是3 5英寸的SCSI硬盘 因为IBM拥有世界上最好的硬盘研究和生产工
  • 疯壳4900、7072心率血压血氧心电四合一智能手表&模组电容触摸实现

    触摸 该手表的触摸是由RH6015C触摸IC完成的 该IC是一款内置稳压模块的单通道电容式触摸感应控制开关 IC 可以替代传统的机械式开关 RH6015可在有介质 如玻璃 亚克力 塑料 陶瓷等 隔离保护的情况下实现触摸功能 安全性高 RH6
  • delete 和 delete []的真正区别

    c 中对new申请的内存的释放方式有delete和delete 两种方式 到底这两者有什么区别呢 1 我们通常从教科书上看到这样的说明 delete 释放new分配的单个对象指针指向的内存 delete 释放new分配的对象数组指针指向的内
  • ubuntu下解决wps2019缺少字体问题

    准备字体包 链接 https pan baidu com s 1rsqn3CY SWS KWaKc0w83g 提取码 h9cs 复制 解压后的wps symbol fonts zip到 home usr share fonts下 sudo
  • 西门子PLC—用 SCL 编写你的第一个 TIA 代码

    前言 使用梯形图编写程序时 博途编辑器是通过网络段 把程序分成一段一段的 编辑器可以插入若干个网络段 每一个网络段可以有各自的注释 而SCL是文本语言 不分网络段 在LAD FBD语言内增加SCL的除外 这就需要需要用其他的方法来 解决程序
  • 面试总结大全

    预定义变量 0 脚本名 所有的参数 所有的参数 参数的个数 当前进程的PID 上一个后台进程的PID 上一个命令的返回值 0表示成功 for 循环次数是固定的 for i in 取值 范围 1 20 zhangsan lisi wanger
  • 牛客网——华为题库(41~50)

    华为题库 41 称砝码 42 学英语 43 迷宫问题 44 Sudoku 45 名字的漂亮度 46 截取字符串 48 从单向链表中删除指定值的节点 50 四则运算 41 称砝码 include
  • C++通过回车结束循环输入

    试想一个案例 假设需要你输入n行数字 而每一行输入的数字数量都未知 不定 如何通过C 来实现这一操作 本贴笔者给出一个具体案例 首先规定输入的行数 而后在每一行输入不定量的数字 最后将每一个数字对应的值 以及与其匹配的行数输出 例如 输入
  • 实战07- 模型融合:利用AdaBoost元算法提高分类性能

    元算法 meta algorithm 是对其他算法进行组合的一种方式 即模型融合 模型融合主要分为三种 Bagging Boosting和Stacking 思想 将弱分类器融合成强分类器 融合后比最强的弱分类器更好 视频导学 https w
  • 什么是高防CDN,高防CDN是如何防御网络攻击的呢?

    高防CDN是一种新型的网络构建法式 N是构建在现有网络基础之上的智能虚拟网络 依靠部署在各地的边缘服务器 通过中心平台的负载均衡 内容分发 调度等功能模块 使用户就近获取所需内容 降低网络拥塞 提高用户访问响应速度和命中率 CDN的关键技术
  • tensorflow2.1.0安装

    原来一直用1 x的tf 最近安装2 初始源error无法安装 下载本地包后 换清华源之类的 channels defaults show channel urls true default channels https mirrors tu
  • 机器学习(一)

    文章目录 人工智能 人工智能的诞生 人工智能的发展历程 人工智能与机器学习的关系 机器学习 机器学习的发展历程 讨论 机器学习的必要性 机器学习的定义 机器学习的三要素 机器学习的基本概念 作业 人工智能 人工智能的诞生 人工智能诞生于一群
  • Spring Boot项目中使用 TrueLicense 生成和验证License(服务器许可)

    一 简介 License 即版权许可证 一般用于收费软件给付费用户提供的访问许可证明 根据应用部署位置的不同 一般可以分为以下两种情况讨论 应用部署在开发者自己的云服务器上 这种情况下用户通过账号登录的形式远程访问 因此只需要在账号登录的时
  • python机器学习相关的操作 numpy,GridSearchCV(网格搜索)等

    numpy切片操作 视频讲解 numpy 简单入门 GridSearchCV的简单使用视频讲解 SVM参数优化 metrics中的precision score recall score accuracy score import nump
  • C语言中的system有什么作用,C语言中system函数的使用

    System 是c语言中为了调用windows系统命令来设置的 它包含在头文件 include中 具体的使用可以在system help 后发现帮助命令 命令如下 有关某个命令的详细信息 请键入 HELP 命令名 ASSOC 显示或修改文件
  • python语言通过neo4j构建知识图谱

    用python语言通过neo4j构建知识图谱 安装neo4j社区版 启动neo4j neo4j语法 python编写代码 结果 注意 可能遇到的问题 安装neo4j社区版 下载neo4j 安装相应版本jdk 例 jdk15 neo4j4 2
  • CentOS自动挂载光驱

    今天在CentOs下安装测试数据库 光驱居然找不到了 以前都是自动就能找到的 服务器上也是CentOs 开发库也在CentOs 没出现过这个问题 虽然知道linux一直都有这个问题 改用手动挂载 报以下错误 mount can t find
  • 用宏定义字节对齐

    有时候我们需要对一个数字节对齐 实例代码 include