昏昏暗暗 2022-08-09 11:27 采纳率: 81%
浏览 62
已结题

无符号数和有符号数反汇编的问题?

img

img

img

img

img

有符号数F6= -10应该显示在有符号里面吗?怎么无符号也跑出来个4294 9672 86的值?
有符号数8不应该只显示在有符号里面吗?怎么无符号也跑出来个8的值?
无符号的20(十进制)不应该只显示在无符号里面吗?怎么有符号也跑出来个20(十进制)的值?
请问这是什么原因?

  • 写回答

6条回答 默认 最新

  • ch苏寒 2022-08-10 11:09
    关注

    如果无符号数范围是0-15,那么有符号数的相当于把达到8的都减去16来表示负数
    无符号:0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
    有符号:0 1 2 3 4 5 6 7 -8 -7 -6 -5 -4 -3 -2 -1
    如果无符号数范围是0-(2x-1),那么有符号数的相当于把达到x的都减去2x来表示负数
    有符号和无符号是一样的表示方法,c++中可以混淆使用

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    昏昏暗暗 2022-08-10 11:51

    我明白这个原理,老师我的意思是怎么在反汇编中区分出来那个值=8

    回复
    昏昏暗暗 回复 昏昏暗暗 2022-08-10 11:52

    值=8是有符号还是无符号的呢,在不看c++上面的代码情况下。

    回复
    ch苏寒 回复 昏昏暗暗 2022-08-10 17:43

    有符号和无符号的表示方式是一样的
    意味着赋值操作和存储方式是一模一样的
    在你这个c++程序里无法分辨有无符号
    甚至它们进行加减乘除的运算方式都是一模一样的,这种情况无法分辨
    要对它们使用特定的函数,比如比较大小,输入输出,此时才会出现差别

    回复
查看更多回答(5条)
编辑
预览

报告相同问题?

问题事件

  • 系统已结题 8月22日
  • 已采纳回答 8月15日
  • 创建了问题 8月9日
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部