int a=10;结果是︺︺︺︺︺︺︺a
那为什么是-10时,结果是fffffff6
是-2时,结果是fffffffe
???
int a=-10; printf("%8x",a);
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- 汇编菌 2021-08-06 23:39关注
因为在计算机里面任何数都是以补码形式存在的
负数的补码= 符号位+(原码按位取反+1)
正数的符号位是0
负数的符号位是1
所以会有负数的原码
-10 = 1000_0000_0000_0000_0000_0000_0000_1010
然后符号位保持不变,其它的按位取反
=1111_1111_1111_1111_1111_1111_1111_0101
然后再+1
=1111_1111_1111_1111_1111_1111_1111_0110
然后转化为16进制
=0xfffffff6本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
- ¥20 关于URL获取的参数,无法执行二选一查询
- ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
- ¥15 marlin编译错误,如何解决?
- ¥15 有偿四位数,节约算法和扫描算法
- ¥15 VUE项目怎么运行,系统打不开
- ¥50 pointpillars等目标检测算法怎么融合注意力机制
- ¥20 Vs code Mac系统 PHP Debug调试环境配置
- ¥60 大一项目课,微信小程序
- ¥15 求视频摘要youtube和ovp数据集