能力值:
( LV2,RANK:10 )
|
-
-
2 楼
很简单啊,整数 0~127 本身就是字符编码,比如,按字符显示整数 65 就是字符 'A',66 是 'B',97 是 'a' ,98 是 'b',48 是字符 '0' ,49 是 '1' 等等。
|
能力值:
( LV5,RANK:60 )
|
-
-
3 楼
这是源码,我感觉这就单纯做了个复制,二进制到ASCII好像没什么变化 ;--------------------------------------------------------- BinToAsc PROC ; ; 将 32 位二进制整数转换为 ASCII 码的二进制形式。 ; 接收:EAX = 二进制整数,EST 为缓冲区指针 ; 返回:包含 ASCII 码二进制数字的缓冲区 ;--------------------------------------------------------- push ecx push esi mov ecx,32 ; EAX 中的位数 L1: shl eax,1 ; 最高位移入进位标志位 mov BYTE PTR [esi],'0' ; 选择0作为默认数字 jnc L2 ; 如果进位标志位为0,则跳转到L2 mov BYTE PTR [esi],'1' ; 否则将1送入缓冲区 L2: inc esi ; 指向下一个缓冲区位置 loop L1 ; 下一位进行左移 pop esi pop ecx ret BinToAsc ENDP
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
变化在 ESI 所指向的 32 个字节的内存单元 假设 EAX = 0x12345678,那么: EAX = 0x12345678
二进制位: 0001 0010 0011 0100 0101 0110 1110 1000
ESI: '00010111011010100010110001001000' 在函数返回的时候,内存地址 esi - 32 中储存了根据 eax 二进制位形成的逆序(左右颠倒)排列的二进制字符串。
最后于 2021-2-17 00:38
被老伙计编辑
,原因:
|
能力值:
( LV5,RANK:60 )
|
-
-
5 楼
哦哦原来是实现小端存储功能,感谢感谢
|
|
|