LXIOS

初见二进制/汇编/1.1数据宽度_逻辑运算

2025-11-08

根据教程视频,以下均以32位计算机为例

一.数据宽度

4位→可表示1位16进制0至F,以此类推。
8位→2位16,00至FF
16位→4位16,0000至FFFF
32位→8位16,00000000至FFFFFFFF

人为定义有/无符号

0 1 2 3 4 5 6 7 8 9 A B C D E F
每个数怎么表示是可以定义来的,如顺序定义为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此处不做详解

”1开头为负数“的理解则代表后半部分能表示的数以一开头,而刚好此部分全被定义为负数。

简单了解计量单位

英文 中文 换算关系
BIT 基础构成单元,一般以二进制呈现,为0或1
BYTE 字节 1字节=8位
WORD 此情况下1字通常为16位,即为2字节
DWORD 双字 1字*2,通常为4字节

二.逻辑运算

英文 中文 符号 用途
OR
AND & 置0/进位
XOR 异或 ^ 位加法,实质2的模运算,加密
NOT ! 翻转

以4位为例

1.计算2+3

容器:
X:0010(2)
Y:0011(3)

对每位:
0010
^ 0011
0001
R:0001

进位:
0010
& 0011
0010
同时0010<<1==0100(左移1位)
此时0100!=0000,所以继续运算

R→X:0001
Y:0100

对每位:
0001
^ 0100
0101
R:0101

进位:
0001
& 0100
0000
同时0000<<1==0000(左移1位),此操作后仍为0则计算完毕,此时R的0101即为结果

所以2+3=5(0101)

2.计算2-3

同理,X:0010
Y:0011→(进行补码运算,模16)1101

对每位:
0010
^ 1101
1111
R:1111

进位:
0010
& 1101
0000
同时0000<<1==0000(左移1位),此操作后进位计算完毕

所以2-3=-1(1111为补码表示,对应原码-1)

3.如何获取某value的第N位?

利用&操作置0:
10001111
& 00001000
00001000

4.利用xor加密

明:2015
key:54

加密过程:
00100000(取20的8位明文为例)
^01010100(key)
01110100(密文)

解密过程:
01110100(key)
^01010100(密文)
00100000(明文)

汇编语言

mov

1
2
//将2赋值给eax寄存器
mov eax,2
← Back to Home