编写一个程序,用二进制显示从键盘输入一个字符的ASCII码
展开全部
#include <stdio.h>
int main(int argc, char *argv[])
{
char c;
int i;
scanf("%c",&c);
printf("\n%c的ASCII码用二进制表示就是:",c);
for(i=7;i>=0;i++){
if(c & 1<<i)printf("1");
else printf("0");
}
return 0;
}
抱歉之前没看到是2进制迷迷糊糊以为是16进制了。
这个利用了左移,比如将所有比特位往左移一位之后往最右边一个比特填上0就是左移1位。
用我们从输入得到的字符c与将1左移i位后的结果做按位与运算就知道字符c的每一位是0还是1了。
int main(int argc, char *argv[])
{
char c;
int i;
scanf("%c",&c);
printf("\n%c的ASCII码用二进制表示就是:",c);
for(i=7;i>=0;i++){
if(c & 1<<i)printf("1");
else printf("0");
}
return 0;
}
抱歉之前没看到是2进制迷迷糊糊以为是16进制了。
这个利用了左移,比如将所有比特位往左移一位之后往最右边一个比特填上0就是左移1位。
用我们从输入得到的字符c与将1左移i位后的结果做按位与运算就知道字符c的每一位是0还是1了。
展开全部
data
segment
data
ends
code
segment
'code'
assume
cs:code,ds:data
start:mov
ah,07h
int
21h
mov
cx,8
again:rol
al,1
mov
bl,al
and
al,1h
add
al,30h
mov
dl,al
mov
ah,02h
int
21h
mov
al,bl
loop
again
mov
ah,4ch
int
21h
code
ends
end
start
segment
data
ends
code
segment
'code'
assume
cs:code,ds:data
start:mov
ah,07h
int
21h
mov
cx,8
again:rol
al,1
mov
bl,al
and
al,1h
add
al,30h
mov
dl,al
mov
ah,02h
int
21h
mov
al,bl
loop
again
mov
ah,4ch
int
21h
code
ends
end
start
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询