首页
社区
课程
招聘
[求助]进制转换的一个小问题
发表于: 2009-5-5 21:43 4200

[求助]进制转换的一个小问题

2009-5-5 21:43
4200
szFtDectoOtc          db       '%o',0   

     invoke   GetDlgItemInt,hWinMain,IDC_DEC,NULL,FALSE
     invoke   wsprintf,addr @szBuffer1,addr   szFtDectoOtc,eax
     invoke   SetDlgItemText,hWinMain,IDC_OTC,addr @szBuffer1
我 用这几句想把十进制转换为八进制为什么这么弄也不行啊!
但是转换16进制是可以啊的

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
2
wsprintf函数不支持转换八进制。只有自己写了。
2009-5-5 21:48
0
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
啊,是这样的啊,那就有点麻烦了,郁闷
2009-5-5 22:01
0
雪    币: 2384
活跃值: (766)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
4
.586
.model flat,stdcall
option casemap:none

include                windows.inc
include                user32.inc
include                kernel32.inc

includelib        user32.lib
includelib        kernel32.lib

.data
        szOutTextBuf db 256 dup(0)
       
.code
ReverseStr proc uses esi edi lpStr
        xor eax,eax
        .if !lpStr
                ret
        .endif
        mov eax,lpStr
        xor esi,esi
        xor edi,edi
        .while BYTE ptr [eax + esi]
                inc esi
        .endw
        .while esi != edi
                mov cl,[eax+esi-1]
                mov dl,[eax+edi]
                mov BYTE ptr [eax+edi],cl
                mov BYTE ptr [eax+esi-1],dl
                inc edi
                dec esi
        .endw
        ret
ReverseStr endp

;*****************************************
;  lpOutBuff为输出缓冲区
; dwValue为要转换的整数值
; nType参数是转换类型,分别可以是2、8、10、16进制都可以转换。
;*****************************************
dwtos proc uses ebx lpOutBuff, dwValue, nType
  xor eax,eax
  .if !(lpOutBuff)
        ret
  .endif
  mov ebx,lpOutBuff
  mov ecx,nType
  mov eax,dwValue
  .while eax > ecx || eax
    xor edx,edx
    div ecx
    .if dl > 9
      add dl,'A' - 10
    .else
      add dl,'0'
    .endif
    mov byte ptr [ebx],dl
    inc ebx
  .endw
  invoke ReverseStr,lpOutBuff
  ret
dwtos endp

;*********************************************
; 示例代码
;*********************************************
start:
        invoke dwtos,offset szOutTextBuf,12345678,10
        invoke MessageBox,0,eax,NULL,MB_OK
        invoke ExitProcess,NULL
        ret
end start
2009-5-5 22:37
0
雪    币: 201
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
用_itow函数,最后一个参数传8
2009-5-6 13:17
0
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
呵呵,谢谢小虾版主,代码我测试了下对呢,不过我自己写了那么多感觉再用这么多代码,就显得臃肿了
2009-5-7 18:39
0
雪    币: 198
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
这个函数,我用不起来,我在我的PLATFORM SDK for xp没找到这个函数,难道在哪个DLL里面要导入库,麻烦指点下!
2009-5-7 18:40
0
游客
登录 | 注册 方可回帖
返回
//