编写程序接收一个ASCII码(从0至128),然后显示输入ASCII码所代表的字符。 注意: (1)能够对1个或多个输入的ASCII码进行处理; (2)对于输入的非ASCII码进行判定和排除。

import java.util.*;
public class Demo3 {

    /**
     * @param args
     */
    /*
     * 编写程序接收一个ASCII码(从0至128),然后显示输入ASCII码所代表的字符。
注意:
(1)能够对1个或多个输入的ASCII码进行处理;
(2)对于输入的非ASCII码进行判定和排除。

     */
    /*
     * private static Scanner san = new Scanner(System.in); 
      
     public static void main(String[] args) { 
      int len = 0; 
      System.out.print("你想输入多少个数字: "); 
      len = san.nextInt(); 
      int [] numbers = new int[len]; 
      for(int i = 0; i < len; i ++) { 
       System.out.print("请输入第" + (i + 1) + "个数字: "); 
       numbers[i] = san.nextInt(); 
      } 
      System.out.print("你输入的" + len +"数字分别是: "); 
      for(int i: numbers) { 
       System.out.print(i + "  "); 
      } 
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner(System.in);
        int len = 0; 
        System.out.println("请输入你想转换多少个ASCII码 "); 
        len = input.nextInt(); 
        int [] numbers = new int[len];
        for(int i=0;i<len;i++){
            
            System.out.println("请输入第"+(i+1)+"个需要转换的ASCII码(从0到128):");
            int x = input.nextInt();
        
            if(x>=0&&x<=128){
            System.out.println((char)x);
            }
            else
                System.out.println("输入的数据不符合要求");
        }
    }

}


好的,以下是用emu8086编写的从键盘输入英文字符显示其二进制ASCII码的汇编语言源程序: ``` ;程序名称:ASCII码显示程序 ;作者:AI助手 ;编写时间:2021年1月1日 .stack 100h ;定义堆栈空间大小 .data ;定义数据段 msg1 db '请输入一个英文字符:$' msg2 db '输入字符ASCII码为:$' char db 0 ;定义一个字节变量char用于存储输入字符 .code ;定义代码段 main proc ;定义主程序 ;显示提示信息 mov ah, 09h ;设置显示字符串功能号 lea dx, msg1 ;将要显示字符串的地址传送到dx寄存器 int 21h ;调用21h中断显示字符串 ;接收输入字符 mov ah, 01h ;设置字符输入功能号 int 21h ;调用21h中断接收输入字符 mov char, al ;将输入字符存储到char变量中 ;显示ASCII码 mov ah, 09h ;设置显示字符串功能号 lea dx, msg2 ;将要显示字符串的地址传送到dx寄存器 int 21h ;调用21h中断显示字符串 mov ah, 02h ;设置字符输出功能号 mov dl, char ;将输入字符传送给dl寄存器 int 21h ;调用21h中断输出字符 ;转换为二进制 mov ax, 0 ;寄存器ax清零 mov bl, char ;将输入字符传送给bl寄存器 mov cx, 8 ;循环8次 read_bit: shr bl, 1 ;将bl右移一位 adc ax, 0 ;将进位标志ADC加到ax寄存器中 shl ax, 1 ;将ax左移一位 loop read_bit ;循环读取每一位二进制数 ;显示二进制数 mov ah, 02h ;设置字符输出功能号 mov dl, ' ' ;将空格字符传送给dl寄存器 int 21h ;调用21h中断输出字符 mov ah, 02h ;设置字符输出功能号 mov bl, 8 ;循环次数为8次 print_bit: mov al, ah ;将ah寄存器的值传送给al寄存器 and al, 00000001b ;将al寄存器的值与00000001b按位与运算 add al, '0' ;将al寄存器的值加上'0'字符 mov dl, al ;将al寄存器的值传送给dl寄存器 int 21h ;调用21h中断输出字符 shr ah, 1 ;将ah右移一位 dec bl ;循环次数减一 jnz print_bit ;如果循环次数不为0就跳转到print_bit处 ;退出程序 mov ah, 4ch ;设置程序退出功能号 int 21h ;调用21h中断退出程序 main endp ;结束主程序 end main ;程序结束标志 ``` 上述程序接收输入字符后将其转换为二进制数并输出。程序执行时,先提示用户输入一个英文字符,然后接收用户输入字符,接着显示输入字符ASCII码,最后将输入字符的二进制数以空格隔开的形式输出,程序运行完成后自动退出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值