目录
学习算法的语言问题以及如何开通gpt4
prompt:这是一份在Leetcode上通过的java代码,请转化成C++版本,并且能通过。
二进制和位运算
1)二进制和位的概念
2)正数怎么用二进制表达
3)负数怎么用二进制表达(最高位为1代表负数)
4)打印二进制;直接定义二进制、十六进制的变量
8)取反符(~)与相反数(取反后+1)
负数的二进制状态如何表示:列出其正数二进制 > - 1 > 取反
拿到一个负二进制怎么看负几:(最高位为1代表负数) > 取反 > +1
取反+1 和-1取反:是一样的,既互逆又相同
9)整数最小值的特殊性(取绝对值还是自己)
5)常见的位运算(1、&、^、~、<<、>>、>>>)
或运算:
7)注意|、&是“位运算或”和“位运算与” ;||、&&是“逻辑或/短路或”、“逻辑与/短路与”,两者是有区别的
6)解释如何打印二进制的函数
由于1的其他位都是0,这些其他位与num相与后也必是0 ,所以是否==0,取决 于值为1的那位,用1所在位来一位一位测num就行
10)为什么这么设计二进制(为了加法的逻辑是一套逻辑,没有条件转移),那么为啥加法逻辑如此重要呢(-*/都是建立在位运算的加法逻辑之上拼出来的的)?
11)关于溢出(自己确保自己的调用所得到的结果不会溢出,一定是自己确保的,计算机不会给你做检查)
溢出位计算机会丢弃,我们要确保溢出丢弃后也对
12)位运算玩法很多很多,特别是异或运算(后面的课会详细讲述)、如何用位运算实现加减乘除(后面的课会详细讲述)
左移、右移: