位运算:~(正/负)运算步骤
计算机中的整数是用补码存储的,最高位为符号位,C语言也遵从同样的规则。如果最高位为0则为正数,求值的时候,直接转为10进制即可。
最高位如果为1代表为负数,求值的时候,需要先把二进制的值按位取反,然后加1得到负数绝对值(相反数)的二进制码,然后转为10进制,加上负号即可。
一、如果是正数如 ~8
1、将8换成二进制即为: 00001000
2、取反 即为:11110111
3、因为符号位是1所以为负数(二进制负数转换为十进制:符号位不变按位取反加一即补码运算规则):10001001
4、转换成十进制为:-9
二、如果是负数如~(-8)
1、十进制负数转换为二进制的方法为:
- 将十进制转换为二进制数。
- 对该二进制数求反。
- 再将该二进制数加1.
- 就是将十进制数转换为二进制数求补码即为结果。比如:-8
第一步:8(10)=00001000(2)
第二步:求反:11110111
第三步:加1:11111000
所以-8(10)=11111000(2)
2、再将-8的二进制取反为:00000111因为是正数,二进制转成十进制的结果为:7
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗