逆向学习笔记之汇编00

数据宽度

计算机中数据有长度限制,超过最高宽度的数据会被丢弃。

1.位(bit):一个0或1
2.字节(byte):8位
3.字(word):16位
4.双字(doubleword):32位

存储范围

1.字节:0~0xFF
2.字:0~0xFFFF
3.双字:0~0xFFFFFFFF

有符号数和无符号数

无符号数的编码规则

无符号数没有负数,全为正数,这个数是多少就存多少
例:1001 1010=0x9A

有符号数的编码规则

若有符号数最高位是0时为正数,最高位是1时为负数。

1.原码:最高位为符号位,其余各位为数值本身的绝对值
2.反码:正数:反码与原码相同。负数:符号位为1,其余位对原码取反
3.补码:正数:补码与原码相同。负数:符号位为1,其余位对原码取反加1

总结:正数原码存储,负数补码存储。
在这里插入图片描述

这个圆,从下面的点开始,逆时针数右半圆为从0到127,顺时针数左半圆为-1到-128
对于一个字节
无符号数:0~FF
有符号数:正数:07F,负数:FF80(因为正数最高位必为0,负数最高位必为1)

计算机运算

位运算

与运算(and &):两个位都为1时,结果才为1
或运算(or |):只要有一个为1就是1
异或运算(xor ^):不一样的时候是1
非运算(not ~):0就是1,1就是0
左移(shl <<):各二进制位全部左移若干位,高位丢弃,低位补0
右移:各二进制位全部右移若干位,低位丢弃,高位补0或者补符号位
	汇编:shr--高位补0,sar--高位补符号位
	C语言:都是>>,通过数据类型判断,无符号数补0,有符号数补符号位

四则运算

加法

1.异或运算(无进位时结果与按位加一样)
2.与运算(判断是否有进位,因为只有两个1才会进位)
3.异或运算(1,2的结果左移1位,左移是因为2判断了哪里需要进位)
4.与运算(再次判断是否有进位)
5.如此重复直到与运算结果为0

减法

减法就是加法,例如4-5=4+(-5)

乘法

乘法本质就是循环的加法

除法

除法的本质是减法,就是看一个数能减去一个数多少次
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PlumpBoy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值