如题所述
第1个回答 2013-11-09
data segment
x db 34h ;00110100b ;34h在内存中的存储格式为00110100b
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov bl,byte ptr [x] ;al<-10001010b
mov cl,8 ;cx<-8
l1: test bl,80h ;看bl和1000000b与的最高为是否为1
jnz l2 ;如果不是1,则l2,输出0
mov dl,'0'
mov ah,02h
int 21h ;输出1
jmp l3
l2: mov dl,'1'
mov ah,02h
int 21h ;输出0
l3: shl bl,1 ;al逻辑左移,将次高位移动到最高位
dec cl
jnz l1
mov ah,4ch
int 21h
code ends
end start
这是汇编语言的算法
x db 34h ;00110100b ;34h在内存中的存储格式为00110100b
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov bl,byte ptr [x] ;al<-10001010b
mov cl,8 ;cx<-8
l1: test bl,80h ;看bl和1000000b与的最高为是否为1
jnz l2 ;如果不是1,则l2,输出0
mov dl,'0'
mov ah,02h
int 21h ;输出1
jmp l3
l2: mov dl,'1'
mov ah,02h
int 21h ;输出0
l3: shl bl,1 ;al逻辑左移,将次高位移动到最高位
dec cl
jnz l1
mov ah,4ch
int 21h
code ends
end start
这是汇编语言的算法
第2个回答 2013-11-09
#include"stdio.h"
main()
{int i,a[5],max,min,ave=0;<br/><br/>for(i=0;i<5;i++)<br/>scanf("%d",&a[i]);<br/>max=a[0];<br/>min=a[0];<br/>for(i=0;i<5;i++)<br/>{max=max>a[i]? max:a[i];<br/>min=min<a[i]? min:a[i];<br/>ave+=a[i];<br/>}
ave=(ave-max-min)/3;
printf("%d\n",ave);
}本回答被网友采纳
main()
{int i,a[5],max,min,ave=0;<br/><br/>for(i=0;i<5;i++)<br/>scanf("%d",&a[i]);<br/>max=a[0];<br/>min=a[0];<br/>for(i=0;i<5;i++)<br/>{max=max>a[i]? max:a[i];<br/>min=min<a[i]? min:a[i];<br/>ave+=a[i];<br/>}
ave=(ave-max-min)/3;
printf("%d\n",ave);
}本回答被网友采纳
第3个回答 2013-11-09
#include<stdio.h>
void f(int n)
{
if(n) f(n/2);
else return;
printf("%d",n%2);
}
int main()
{
int n;
while(1)
{
scanf("%d",&n);
if(n<0) break;
if(n==0) printf("0");
f(n);
printf("\n");
}
return 0;
}
C语言版本
void f(int n)
{
if(n) f(n/2);
else return;
printf("%d",n%2);
}
int main()
{
int n;
while(1)
{
scanf("%d",&n);
if(n<0) break;
if(n==0) printf("0");
f(n);
printf("\n");
}
return 0;
}
C语言版本