位置: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进制计算更方便和省事。

最新文章

  1. eclipse中安装Open Explorer
  2. 【C语言入门教程】7.2 结构体数组的定义和引用
  3. 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"
  4. 【项目】搜索广告CTR预估(一)
  5. Java实现mysql数据库备份
  6. Android(java)学习笔记236:多媒体之加载大图片到内存(Bitmap API)
  7. Project Euler problem 61
  8. eclipse注释模板设置(未整理)
  9. Web框架之Django篇
  10. sql语句中的join用法(可视化解释)
  11. laya 自定义组件加载错误:显示空白
  12. h5视频配置
  13. task 定时设置
  14. redis创建集群——[ERR] Sorry, can't connect to node 192.168.X.X
  15. Python字符串与容器
  16. QT学习笔记8:QDir类及其用法总结
  17. 查看linux设备文件系统类型的方法
  18. Linux shell while
  19. 23种设计模式之策略模式(Strategy)
  20. 获取页面所有链接的JS

热门文章

  1. jq幻灯片2013-8-31
  2. 《Unity3D大风暴之入门篇(海量教学视频版)》
  3. MVC4 过滤器(转)
  4. 数学图形(2.20)3D曲线
  5. Python开发之AJAX全套
  6. C#模拟MSN窗体抖动
  7. C++primer习题--第3章
  8. excel 快捷使用
  9. js 多域名跳转
  10. org.hibernate.MappingException: An association from the table order_intem_inf refers to a unmapped