永发信息网

若有一个整数a(2 byte),怎样求其中的低字节

答案:2  悬赏:40  手机版
解决时间 2021-01-30 08:03
  • 提问者网友:沉默菋噵
  • 2021-01-29 09:00
若有一个整数a(2 byte),怎样求其中的低字节
最佳答案
  • 五星知识达人网友:一秋
  • 2021-01-29 09:28
汇编语言如下:

; 定义两个整数
a db ?
b db ?

;计算两个整数的相异数位
main proc argc:DWORD,argv:DWORD
xor eax,eax
mov al,a
xor ecx,ecx
mov cl,b
xor eax,ecx
push eax
call bitlen
add esp,4
; 此后eax中保存有相异位的个数
main endp

;计算一个数有多少位是1
bitlen proc num:DWORD
xor ecx,ecx
mov eax,num
beginchk:
test eax,eax
jz endchk
push eax
and eax,01h
jz nextchk:
inc ecx
nextchk:
pop eax
shr eax,1
jmp beginchk
endchk:
mov eax,ecx
bitlen endp

C的话那更简单了:

int main(int argc, char *argv[])
{
unsigned char a = ??? , b = ???? ;
unsigned int n = bitlen(a^b);
/////////////////////////////////
}

unsigned int bitlen(unsigned int num)
{
unsigned int n = 0;
for(; num != 0; num>>=1)
{
if( num & 0x01 ) ++n;
}
return n;
}
全部回答
  • 1楼网友:梦中风几里
  • 2021-01-29 10:50

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯