REPEAT_BYTE(x)宏
2024-09-03 02:26:44
位置:include/linux/kernel.h
定义:
#define REPEAT_BYTE(x) ((~0ul / 0xff)*(x))
作用:结果看下面,作用未知,好像是为了一个叫:word_at_a_time的宏,哎。
重点1:什么是0UL
UL是c语言中的常量后缀,用于整型常量。字母U代表unsigned,字母L代表Long,0UL表示这个整型常量0的类型为无符号长整型。
~0UL就是对该数进行求反运算,在64位机子上,结果是:0Xffffffffffffffff(共16个f)
重点2:二进制除法
因为2进制只有2个数,除0是非法的,所以只能除1,那么:0Xffffffffffffffff / 0Xff = 0X0101010101010101
重点3:二进制乘法
虽然x是未知数,但最终均以二进制形式表达。假设:x=12,也就是16进制的c,即:x=c,那么整个表达式的结果:0XC0C0C0C0C0C0C0C
为啥要转换为16进制呢?答案是二进制的乘法太抽象了也太长太麻烦了,所以转换为16进制计算更方便和省事。
最新文章
- eclipse中安装Open Explorer
- 【C语言入门教程】7.2 结构体数组的定义和引用
- linux -小记(2)问题:yum 安装报错";Another app is currently holding the yum lock; waiting for it to exit... ...: yum Memory : 26 M RSS (868 MB VSZ) Started: Wed Oct 26 22:48:24 2016 - 0";
- 【项目】搜索广告CTR预估(一)
- Java实现mysql数据库备份
- Android(java)学习笔记236:多媒体之加载大图片到内存(Bitmap API)
- Project Euler problem 61
- eclipse注释模板设置(未整理)
- Web框架之Django篇
- sql语句中的join用法(可视化解释)
- laya 自定义组件加载错误:显示空白
- h5视频配置
- task 定时设置
- redis创建集群——[ERR] Sorry, can't connect to node 192.168.X.X
- Python字符串与容器
- QT学习笔记8:QDir类及其用法总结
- 查看linux设备文件系统类型的方法
- Linux shell while
- 23种设计模式之策略模式(Strategy)
- 获取页面所有链接的JS
热门文章
- jq幻灯片2013-8-31
- 《Unity3D大风暴之入门篇(海量教学视频版)》
- MVC4 过滤器(转)
- 数学图形(2.20)3D曲线
- Python开发之AJAX全套
- C#模拟MSN窗体抖动
- C++primer习题--第3章
- excel 快捷使用
- js 多域名跳转
- org.hibernate.MappingException: An association from the table order_intem_inf refers to a unmapped