在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
技术交流,DH讲解. 昨晚半夜1点多,有个朋友来问这个问题.想了下,先打算偷懒,让他先用IntToHex转16进制,然后1位16进制对应4位二进制. Type TBinString = Array[ 0..31 ] Of Char ; Function IntToBin( N: Integer ): TBinString ; Const BinCharArr: Array[ 0..1 ] Of Char = ( '0', '1' ) ; Var I: Integer ; Begin For I := 0 To 32 - 1 Do Begin Result[ 31 - I ] := BinCharArr[ N And 1 ] ; N := N Shr 1 ; End ; End ; 汇编版本 type TBinString = array[0..31] of AnsiChar; function Int2Bin(n:Integer):TBinString ; asm push edx //将result保存一下 mov ecx,$1F @@nLoop: cmp ecx , 0 jl @@nExit bt eax,ecx jc @@n1 mov byte ptr [edx],'0' jmp @@nNext @@n1: mov Byte ptr [edx],'1' @@nNext: inc edx dec ecx jmp @@nLoop @@nExit: pop edx mov eax,edx end; 代码很短.就这么个意思吧. 我是DH. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论