添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
有胆有识的便当  ·  spring boot ...·  1 年前    · 
玩足球的毛巾  ·  electron webview ...·  1 年前    · 
霸气的骆驼  ·  bash - How to loop ...·  1 年前    · 
Push ecx
shl edx, 1
mov eax,esi
{ $IFDEF VER210 }
movzx ecx, word ptr [edi
- 12 ] { 需要设置CodePage }
{ $ENDIF }
call System.@LStrSetLength
// 设置新串长度
mov eax,esi
// 新字符串地址
Call UniqueString
// 产生一个唯一的新字符串,串位置在eax中
Pop ecx
@@SetHex:
xor edx,edx // 清空edx
mov dl, [edi]
// Str字符串字符
mov ebx,edx
// 保存当前的字符
shr edx, 4 // 右移4字节,得到高8位
mov dl,byte ptr[edx
+ @@HexChar] // 转换成字符
mov [eax],dl
// 将字符串输入到新建串中存放
and ebx,$0F // 获得低8位
mov dl,byte ptr[ebx
+ @@HexChar] // 转换成字符
inc eax
// 移动一个字节,存放低位
mov [eax],dl
inc edi
inc eax
loop @@SetHex
@@Exit:
pop edi
pop esi
pop ebx
@@HexChar: db
' 0123456789ABCDEF '
end ;

function HexToStr( const Str: AnsiString): AnsiString;
asm
push ebx
push edi
push esi
test eax,eax
// 为空串
jz @@Exit
mov edi,eax
mov esi,edx
mov edx,[eax
- 4 ]
test edx,edx
je @@Exit
mov ecx,edx
push ecx
shr edx, 1
mov eax,esi
// 开始构造字符串
{ $IFDEF VER210 }
movzx ecx, word ptr [edi
- 12 ] { 需要设置CodePage }
{ $ENDIF }
call System.@LStrSetLength
// 设置新串长度
mov eax,esi
// 新字符串地址
Call UniqueString
// 产生一个唯一的新字符串,串位置在eax中
Pop ecx
xor ebx,ebx
xor esi,esi
@@CharFromHex:
xor edx,edx
mov dl, [edi]
// Str字符串字符
cmp dl,
' 0 ' // 查看是否在0到f之间的字符
JB @@Exit
// 小于0,退出
cmp dl,
' 9 ' // 小于 = 9
ja @@DoChar
// CompOkNum
sub dl,
' 0 '
jmp @@DoConvert
@@DoChar:
// 先转成大写字符
and dl,$DF
cmp dl,
' F '
ja @@Exit
// 大于F退出
add dl,
10
sub dl,
' A '
@@DoConvert:
// 转化
inc ebx
cmp ebx,
2
je @@Num1
xor esi,esi
shl edx, 4
mov esi,edx
jmp @@Num2
@@Num1:
add esi,edx
mov edx,esi
mov [eax],dl
xor ebx,ebx
inc eax
@@Num2:
dec ecx
inc edi
test ecx,ecx
jnz @@CharFromHex
@@Exit:
pop esi
pop edi
pop ebx
end ;

procedure TForm1.Button1Click(Sender: TObject);
var
str: Ansistring;
begin
str :
= ' 不得闲按时打发 ' ;
str :
= StrToHex(str);
ShowMessage(str);
ShowMessage(HexToStr(str));
end ; 转:16进制转10进制算法各编程语言代码咋写?
在 C# 中,可以使用 Convert.ToInt32() 函数将 16 进制数转换为 10 进制数。该函数需要两个参数,第一个参数是要转换的 16 进制数,第二个参数是基数(即进制)。
整个字符串处理 在scanf()和printf()函数中,%s指的就是字符串 所以我们就可以使用scanf("%s",str)和printf("%s",str)从键盘处读取字符串并将字符串打印出来
C语言输出字符串
C语言标准函数库中 printf 函数和 puts 函数都可以输出字符串,但各有优点和缺点。我们综合两者的优点,设计一个函数来输出字符串。说明:str 为字符串的起始地址。函数将输出 str 所指示的字符串,不自动换行。函数值为输出字符的数目。
C语言输入字符串
说明:str 为字符串的起始地址,size 为字符数组的尺寸。函数读取用户从键盘输入的字符串(以换行符 ‘\n’ 结束)到 str 所指示的字符数组中,并在字符末尾添加字符串结束标记 ‘\0’,函数值为 str。显然,字符串的最大长度为 size - 1,为字符串结束标记 ‘\0’ 预留空间。若用户输入的字符过多,则函数最多读取 size - 1 个字符,剩余字符仍留在缓冲区中,可以继续被后面的输入函数读取。我们综合两者的优点,克服两者的缺点,设计一个函数来输入字符串。
Win32汇编:字符串浮点数运算过程
整理复习汇编语言的知识点,以前在学习《Intel汇编语言程序设计 - 第五版》时没有很认真的整理笔记,主要因为当时是以学习理解为目的没有整理的很详细,这次是我第三次阅读此书,每一次阅读都会有新的收获,这次复习,我想把书中的重点,再一次做一个归纳与总结(注:16位汇编部分跳过),并且继续尝试写一些有趣的案例,这些案例中所涉及的指令都是逆向中的重点,一些不重要的我就直接省略了,一来提高自己,二来分享知识,转载请加出处,敲代码备注挺难受的。