C语言中的在内存中表示的二进制代码我看不懂啊,谁给我详细的解释一下,多举一些例子

2024-12-21 12:22:08
推荐回答(3个)
回答1:

首先代码都是放在代码段里的,然后指令都是CPU厂商规定好的,大部分是要你去记的。举个例子:je short 7c921251 je 二进制为74,后面跟着你跳的字节数,比如说你的这段代码在7c92124A.那么这段代码就会变成74 05。7c921251 - 7c92124A = 7再减去本身占了两个字节就是5了。这是向下跳转,向上跳转做个补就可以了。

回答2:

好啦,我给你系统的讲一下吧!光了解你这个例子是不行的。

************************************原理*******************************************
当真值为正时:原码、反码、补码数值位完全相同;
当真值为负时:
原码的数值位保持原样,
反码的数值位是原码数值位的各位取反,
补码则是反码的最低位加一。
注意符号位不变。
**************************例如*************************************************************************
若机器数是16位:
十进制数 17 的原码、反码与补码均为: 0000000000010001
十进制数-17 的原码、反码与补码分别为:1000000000010001、1111111111101110、1111111111101111
**********************另外(你应该知道的知识)***************************************************
在计算机中,数据是以补码的形式存储的:
在n位的机器数中,最高位为符号位,该位为零表示为正,为1表示为负;
其余n-1位为数值位,各位的值可为0或1。
还想研究深的话,请再发帖!
******************************************************************************************
不懂可以再问我。

回答3:

学机器码那是自虐,完全没这必要,除非你是搞硬盘数据恢复的。