微机大小写转化程序设计
- 格式:doc
- 大小:28.50 KB
- 文档页数:1
实验一字母大小写转换实验实验一字母大小写转换实验一、实验目的:了解各种字符尤其是小写字母和大写字母在计算机内的表示方式,并学习如何进行大小写字母的转换。
同时通过该实验熟悉汇编语言程序调试的过程和基本方法。
二、实验内容已知程序功能如下:接收键盘输入按键,并将按键对应的ASCII码放入AL中,若按下Enter(回车)键则结束输入,显示转换结果,并返回继续等待键盘输入,若按下“CTRL+C”,则程序结束。
要求:为程序填空,实现将输入的小写字母转换为大写字母,除小写字母外的其他字符保持不变的功能。
提示:对AL中的ASCII码进行判断,是回车键则结束输入,否则继续判断是否小写字母,如果是小写字母则转换为大写字母,否则保持不变。
三、实验步骤:1、画出程序流程图2、列出程序清单,并进行注释3、对程序进行上机调试,观察实验结果四、思考如何修改程序,使键盘接收到Enter(回车)键后只显示转换的大写字母,其他的非字母字符不显示,然后返回继续等待键盘输入。
附录:程序DA TA SEGMENTBUF DB 100 DUP(?) ;BUF缓冲区用来保存转换成功的大写字母的ASCII码MESS DB 'please enter your word:',0AH,0DH,'$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DA TAMOV DS,AXMOV BX,OFFSET BUFKKK: MOV SI,0000HLEA DX,MESS ;显示‘PLEASE ENTER YOUR WORD:'提示字符MOV AH,9 ;显示‘PLEASE ENTER YOUR WORD:'提示字符INT 21H ;显示‘PLEASE ENTER YOUR WORD:'提示字符GGG: MOV AH,01H ;从键盘接收一个键的输入,并把得到按键对应字符的ASCII码存入ALINT 21H ;从键盘接收一个键的输入,并把得到按键对应字符的ASCII码存入ALCMP AL,0DHJZ BBBCMP AL,61HJB GGGCMP AL,7AHJA GGGSUB AL, 20HTTT: MOV [BX+SI],ALINC SIJMP GGGBBB: MOV [BX+SI],AL ;BBB程序段负责处理回车键按下的事件MOV AL,0AH ;把转换成功的大写字母显示出来并继续等待下一次输入MOV [BX+SI+1],ALMOV AL,'$'MOV [BX+SI+2],ALMOV AH,02HMOV DL,0DHINT 21HMOV AH,02HMOV DL,0AHINT 21HMOV AH,09HMOV DX,BXINT 21HJMP KKKPPP: MOV AX,4C00HINT 21HCODE ENDSEND START思考题程序把GGG内的“JA GGG和JB GGG”改为“JA TTT和JB TTT”。
大小写转换c语言程序
大小写转换是计算机中常用的操作,它可以将输入的字符串转换为所需的大小写形式。
在C语言中,实现大小写转换的函数是toupper 和tolower。
toupper函数的作用是将小写字母转换为大写字母,tolower函数保持相反,它可以将大写字母转换为小写字母。
在C语言中,实现大小写转换过程非常简单,首先需要声明函数toupper和tolower,然后使用循环语句来遍历每一个字符,检查该字符是否是小写字母,若是,则将其转换为大写字母;如果该字符是大写字母,则将其转换为小写字母。
例如下面的程序将一个字符串中的所有小写字母转换为大写字母:```
#include <stdio.h>
#include <ctype.h>
int main () {
char str[20] = "Hello World";
int i;
for (i = 0; str[i]; i++)
str[i] = toupper (str[i]);
printf ("%s\n", str);
return 0;
}
```
通过上述程序,我们可以看出,在C语言中实现大小写转换的过程非常容易,只要声明函数toupper和tolower,再使用循环语句依次对每个字符进行检查,就可以实现输入字符串的大小写转换操作。
另外,C语言仅提供了简单的大小写转换函数,如果想要实现更复杂的字符串转换,就需要借助其他处理函数,而这些处理函数的编写也非常容易。
中文数字小写变大写程序中文数字小写转换为大写一直是很多程序员所需要解决的问题。
由于这个问题没有一个官方的解决办法,所以程序员们经常需要自己解决这个问题。
下面将详细介绍如何编写一个中文数字小写变大写的程序。
第一步:了解中文数字的规律首先,要开始编写中文数字的大小写转换程序,需要先了解中文数字的规律。
中文数字有一定的顺序性,需要根据这一顺序来进行大小写的转换,如下所示:一、十、百、千、万、亿。
每一位数字对应的称呼都是这些数字之间的排列组合,例如:十一、二十、二十一、一百一十一、一千三百五十六、五亿六千四百三十万零一百十一。
第二步:建立一个索引表为了方便程序的编写,需要建立一个索引表来列出所有数字和它们对应的中文字符。
可以使用Python的字典来实现这个功能。
例如:数字和中文对应关系的索引表如下:num_dict = {0: '零',1: '一',2: '二',3: '三',4: '四',5: '五',6: '六',7: '七',8: '八',9: '九'}第三步:编写转换程序在了解了数字规律并建立了索引表之后,就能开始编写转换程序了。
使用递归算法可以比较容易地完成转换程序的编写。
示例代码:num_dict = {0: '零',1: '一',2: '二',3: '三',4: '四',5: '五',6: '六',7: '七',8: '八',9: '九'}unit_dict = {0: '',1: '十',2: '百',3: '千',4: '万'}def num_to_chinese(num):if num < 10:return num_dict[num]elif num < 20:return '十' + num_dict[num - 10]elif num < 100:return num_dict[num // 10] + '十' + num_dict[num % 10]elif num < 1000:return num_dict[num // 100] + '百' +num_to_chinese(num % 100)elif num < 10000:return num_dict[num // 1000] + '千' +num_to_chinese(num % 1000)print(num_to_chinese(12345))运行上面的代码会输出:一万二千三百四十五。
英⽂字母⼤⼩写转换程序设计(2)摘要 (1)数制转换 (2)1 DOS功能调⽤介绍 (2)2 设计⽅案 (5)3 总程序 (6)4 程序流程图及程序设计分析 (13)4.1主程序流程图 (13)4.2主程序流程图分析 (14)4.3⼤⼩写转换⼦程序ABC (14)4.3.1 ⼦程序ABC (14)4.3.2 ⼦程序ABC的流程图 (16)4.3.3 ⼦程序ABC流程图分析 (16)4.4ASCII码转换⼦程序CBA (17)4.4.1 ⼦程序CBA (17)4.4.2 ⼦程序CBA的流程图 (18)4.4.3 ⼦程序ABC流程图分析 (18)5 程序运⾏实例 (19)5.1⼤⼩写转换 (20)5.2ASCII码转换 (20)5.3输⼊⾮字符 (21)5.4调试中出现的错误 (21)6 ⼼得体会 (23)参考⽂献 (24)摘要汇编语⾔是直接⾯向处理器(Processor)的程序设计语⾔。
处理器是在指令的控制下⼯作的,处理器可以识别的每⼀条指令称为机器指令。
每⼀种处理器都有⾃⼰可以识别的⼀整套指令,称为指令集。
处理器执⾏指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变⾃⼰内部的⼯作状态,也能控制其它外围电路的⼯作状态。
汇编语⾔的主要特点是可以使⽤助记符来表⽰机器指令的操作码和操作数,可以⽤标号和符号来代替地址、常量和变量。
这次课程设计的任务是⽤汇编语⾔进⾏⼀个数制转换,从键盘输⼊⼀串字符(⾮字符则不接受),通过屏幕提⽰菜单选择转换成ASCII码,或者进⾏⼤⼩写转换(原来是⼤写转换成⼩写,⼩写则转换为⼤写)并显⽰。
先输⼊要转换的数据,再对数据进⾏检验判断其合法性,对不合法的数据进⾏警报并重新输⼊数据,对合法的数据按照要求进⾏⼤⼩写转换或者转换成ASCII,码,最后显⽰转换后的字符串。
关键词:DOS功能调⽤ ASCII码⼤⼩写转换数制转换1 DOS功能调⽤介绍DOS是⼀个磁盘操作系统,也称为IBM-DOS或者MS-DOS。
微机原理⼤⼩写字母转换课设⽬录摘要...................................................................... I 1 原理 (1)1.18086简介 (1)1.2汇编程序设计简介 (2)1.3报警设计 (2)2程序设计 (4)2.1程序设计流程图 (4)2.2从键盘接受字符程序段 (5)2.3⼤写字母转换成⼩写字母程序段 (5)2.4⼩写字母转换成⼤写字母程序段 (6)2.5报警程序段 (7)2.6总程序代码 (8)3 运⾏结果分析 (11)4⼼得体会 (12)参考⽂献 (13)摘要在课程设计之前,具备微机原理的理论知识和实践能⼒;熟悉汇编语⾔编程技术;熟悉80X86的CPU结构和指令系统;熟悉相关常⽤接⼝电路的设计使⽤⽅法是必不可少的。
因此原理部分重新温习并整理了相关知识。
课程设计要求进⾏⼤⼩写字母的转换。
其实字母⼤⼩写的区别在于他们的ASCII码范围,它们之间的转换其实就是加减相应的ASCII码值。
在判断输⼊的字母是⼤写的还是⼩写的(即判断输⼊符号ASCII码在41H~5AH还是在61H~7AH内)之后,决定判断是加上还是减去ASCII码值。
另外如果输⼊的不是字母(输⼊字符对应ASCII码值不在41H~5AH或61H~7AH内),则需要报警提⽰,这不但涉及到⽤汇编语⾔实现发声的⽅法,⽽且对计算机硬件的了关键词:8086 ⼤⼩写字母转换报警1 原理1.1 8086简介Intel 8086拥有四个16位的通⽤寄存器,也能够当作⼋个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。
资料寄存器通常由指令隐含地使⽤,针对暂存值需要复杂的寄存器配置。
它提供64K 8 位元的输出输⼊(或32K 16 位元),以及固定的向量中断。
⼤部分的指令只能够存取⼀个内存位址,所以其中⼀个操作数必须是⼀个寄存器。
运算结果会储存在操作数中的⼀个。
要求:将一串字符中的大写字母(或者小写字母)全部转换为小写字母(或者大写字母)很显然我们会想到通过大小写字母ASCII的区别,然后用if else判断后,在进行转换,代码如下:#include <stdio.h>int main(int argc, char *argv[]){int i;char a[6] = "BasIc";char b[6] = "MiniX";for(i = 0;i<5;i++){if((a[i] >= 97) && (a[i] <= 122))a[i] = a[i] - 32;if((b[i] >= 65) && (b[i] <= 90))b[i] = b[i] + 32;}printf("%s\n%s",a,b);return 0;}但是想想这样是不是太慢了呢?又或者如果我们要求不适用if语句,那又该怎么办呢?我们看看大小写字母ASCII对应的二进制A 100,0001 a 110,0001B 100,0010 b 110,0010C 100,0011 c 110,0011… …Z 101,1010 z 111,1010得到答案了吧!!大写字母的第5位(从0位开始)全部是0,而小写字母的第5位全是1,其实它们的差值为32 = 25 就是这个道理。
所以我们的程序可以这样改#include <stdio.h>int main(int argc, char *argv[]){int i;char a[6] = "BasIc";char b[6] = "MiniX";for(i = 0;i<5;i++){a[i] &= ~(1<<5);//全部 转化为大写b[i] |= (1<<5);//全部 转化为小写}printf("%s\n%s",a,b);return 0;}只需要对第5位进行置0、置1操作就可以了,O(∩_∩)O~,简单吧。
/*这是池承利写的个人小程序,它的功能是实现将任意一串字符不管是大写还是小写分别转换,大写转换小写小写转换为大写,汉字和数字输入,输出则不变*/#include <stdio.h>#include <string.h>int main(){char str1[100]="";int i;FILE *fp;if((fp=fopen("file.txt", "w"))==NULL)//生成一个文件,名字为file.txt{printf("无法打开文件\n");exit(0);}// getchar();printf("请输入一串字符:");gets(str1);for(i=0;i<100; i++){if(str1[i]>='A' && str1[i]<='Z')/* 将字符串中的大写字符转换成小写字符,直到100为止*/{str1[i] = str1[i] + 32;}else if(str1[i]>='a' && str1[i]<='z')//将字符串中的小写字符转换为大写{str1[i] = str1[i] - 32;}fputc(str1[i], fp); /* 将转换后的字符存入文件*/}fclose(fp);printf("输出结果是:");fp = fopen("file.txt", "r");//打开文件file.txtfor(i=0; i<100; i++){if(str1[i]>='A' && str1[i]<='Z')/* 将字符串中的小写字符转换成大写字符,直到遇到"."为止*/str1[i] = str1[i] - 32;str1[i] = fgetc(fp);printf("%c", str1[i]);}printf("\n");fclose(fp);system("pause");return(0);}。
字母的大小写转换在计算机编程中,字母的大小写转换是一项常见的任务。
无论是在字符串处理、文本编辑还是数据分析等领域,我们经常需要将字母的大小写进行转换。
本文将介绍字母的大小写转换的方法和实现方式。
一、大写转小写将字母的大写形式转换为小写形式是一种常见需求。
在大多数编程语言中,都提供了内置的函数或方法来完成这个任务。
以下是几种常见的方法:1. 使用内置函数许多编程语言提供了内置的函数来将字母转换为小写形式。
例如,在Java中,我们可以使用`toLowerCase()`方法来实现:```javaString str = "HELLO";String lowerCaseStr = str.toLowerCase();System.out.println(lowerCaseStr); // 输出:hello```2. ASCII码转换ASCII码是将字符映射为数字的标准编码系统。
字母的ASCII码中,大写字母的值比小写字母的值小固定的距离。
因此,我们可以通过将大写字母的ASCII码加上这个固定的距离来转换为小写字母的ASCII 码。
以下是一个示例(使用C语言):```cchar ch = 'A';ch = ch + 32;printf("%c\n", ch); // 输出:a```二、小写转大写同样地,将字母的小写形式转换为大写形式也是一种常见需求。
以下是几种常用的方法:1. 使用内置函数许多编程语言提供了内置的函数来将字母转换为大写形式。
例如,在Python中,我们可以使用`upper()`方法来实现:```pythonstr = "hello"upperCaseStr = str.upper()print(upperCaseStr) # 输出:HELLO```2. ASCII码转换与将大写字母转换为小写字母的ASCII码转换方法相反,将小写字母转换为大写字母的ASCII码需要减去相同的固定距离。
编⼀个程序,输⼊⼀个字符,如果是⼤写字母,就转换成⼩写字母,如果输⼊的字符是⼩写字母,则转换为⼤using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace _3字符互转{class Program{static void Main(string[] args){Console.WriteLine("请输⼊⼀个字符:");//输出到命令提⽰符上⾯char c;//定义⼀个字符string s;//定义⼀个字符串while (true)//输⼊正确才退出{s = Console.ReadLine();//⽤s来存储⽤户输⼊的值if (s.Length == 1)//如果⽤户输⼊的字符串的长度是1的话说明⼀定是⼀个字符{c = Convert.ToChar(s);//将s转换会字符if (char.IsLower(c))//判断是不是⼩写字符,如果是的话转换,如果不是的判断是不是⼤写字符{Console.WriteLine("⼤写字符是:");Console.Write(char.ToUpper(c));//⼩写字符转换为⼤写字符break;}else if (char.IsUpper(c)){Console.WriteLine("⼩写字符是:");Console.Write(char.ToLower(c));//⼤写字符转换为⼩写字符break;}}Console.WriteLine("请输⼊⼀个字符");//其他⾮法输出,通通输⼊这条语句}Console.ReadKey();//按任意键退出}}}。