二进制的学习总结

二进制的基础

  and &    (按位取与)  1 & 1  =  1   1 & 0 = 0  0 & 0 = 0  0 & 1 = 0

  or    |      (按位取或)  1 | 1 = 1  1 |  0 = 1  0 | 0 = 0  0 | 1 = 0

  xor    ⊕/^  (按位异或)   1⊕1 = 0  1⊕0 = 1  0 ⊕0 = 0  0 ⊕1 = 0

    lsh  <<  (逻辑左移)将二进制数向左移动x位造成二进制数右边不足用0补足,左边高位溢出

    rsh >>   (逻辑右移)将二进制数向右移动y位造成二进制数左边补足用0补足,右边高位溢出

    not    ~     (按位取反)  每一位0变1,1变0

注意:二进制操作的优先级好像很低,所以进行计算时可以多打写括号反正又不会累死

二进制的基本操作

读取x的第pos个二进制位:      (x >> pos)& 1;

读取x的第pos位开始的cnt位:    (x >> pos)& ((1 << cnt) - 1);

将x的第pos位置为1:        (1 << pos)| x;

将x的第pos位置为0:        (~(1 << pos))& x;

将x的第pos位取反:         (1 << pos) ⊕ x;

将x的末尾的1提取出来:       x & (x ⊕ (x + 1));

二进制中最低位的一个1的位置:      lowbit(x) = x & (-x);

遍历二进制中所有的1的位置:    for(; x; x -= lowbit(x));

判断一个数的奇偶性:         (x & 1) ? 偶数 : 奇数;

对2的幂取模 :             x & ((1 << y)  - 1)

二进制表示集合

  枚举子集  for(int i = x; i ; i = (i & (i - 1));  

 

转载于:https://www.cnblogs.com/2020pengxiyue/p/9322134.html

CTF二进制学习路线可以按照以下步骤进行: 1. 入门逆向工具:首先,你可以学习一些逆向工具,比如IDA Pro和Ghidra。这些工具可以帮助你分析和理解二进制文件的结构和功能。\[2\] 2. 学习数据结构和算法:在进行CTF方面的逆向时,算法逆向是一个重要的考察点。因此,建议你学习一些数据结构和算法的知识,以便更好地理解和分析二进制文件中的算法。\[2\] 3. 学习逆向实战:如果你想进行真正的逆向工作,可以考虑观看一些逆向工程的视频教程,比如滴水逆向三期初级班。这个课程涵盖了广泛的知识面,学完后你将具备入门级的逆向技能。\[2\] 4. 了解二进制安全的发展历程:在学习二进制安全之前,了解其发展历程和相关概念是很重要的。二进制安全技术在20世纪90年代就已经有了一小群先驱者在研究,并且现在已经形成了一个完整的体系。了解这些背景知识可以帮助你更好地理解和应用二进制安全技术。\[3\] 总结起来,CTF二进制学习路线包括入门逆向工具、学习数据结构和算法、学习逆向实战以及了解二进制安全的发展历程。通过这些步骤,你可以逐步提升你的二进制安全技能,并在CTF比赛中取得更好的成绩。 #### 引用[.reference_title] - *1* [【PWN之路】二进制基础](https://blog.csdn.net/weixin_38835814/article/details/126567215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [二进制学习路线(暂定)](https://blog.csdn.net/qq_41071646/article/details/102884530)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ctf从零开始学 0x1:Windows下的二进制安全学习路线](https://blog.csdn.net/qq_43504939/article/details/90246409)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值