C语言程序设计_进制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

关于数制的学习C语言是为描述系统而设计的,因此它应当具有汇编语言所能完成的一些功能。C语言既具有高级语言的特点,又具有低级语言的功能,因而具有广泛的用途和很强的生命力。为了使没有学过汇编语言的读者对二进制运算能有较好的理解,先介绍有关进制、位的知识。补充知识:计算机中常用的数制、数据与编码计算机中常用的数制、数据与编码计算机使用的数制及转换计算机中二进制的基本运算计算机中数据与编码表计算机中数据的表示计算机中常用的数制、数据与编码数制在计算机中对信息的处理也就是对数据的处理,数据是信息在计算机内部的表示形式。人们通常使用的是十进制计数制例:(123.456)10=1×102+2×101+3×100+4×10-1+5×10-2+6×10-3任意一个十进制数N,可表示成如下形式:(N)10=Dn-1×10n-1+Dn-2×10n-2+......+D1×101+D0×100+D-1×10-1+......+D-m+1×10-m+1+D-m×10-m进位制二进制八进制十进制十六进制规则逢二进一逢八进一逢十进一逢十六进一基数R=2R=8R=10R=16数码0,10,1,2...,70,1,2...,90,1,2,...9,A,B,C,D,E,F权2i8i10i16i形式BODH表示计算机中常用的各种进位计数制0000010001200103001140100501016011070111810009100110(A)101011(B)101112(C)110013(D)110114(E)111015(F)111100001001201030114100510161107111十六进制八进制说明:在计算机中十进制数数据的输入和输出二进制数数据的存储和运算常识:八进制、十六进制数一种计数方法,以弥补二进制数在书写位数过长的不足。以0开头以0x开头方法:把各个非十进制数按权展开,求和。不同进位计数制之间的转换转换的原则:如果两个有理数相等,则两数的整数部分和小数部分一定分别相等。通常对整数部分和小数部分分别进行转换。1)非十进制数转换成十进制数例:二进制数转换成十进制数(1101.101)2=1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=8+4+0+1+0.5+0+0.125=(13.625)10=13.625D00000100080001110019001021010100011310111101004110012010151101130110611101401117111115二进制十进制二进制十进制十进制数转换为二进制数:转换为八进制数:转换为十六进制数:2)十进制数转换成非十进制数整数——“除2取余”;小数——“乘2取整”。整数——“除8取余”,小数——“乘8取整”。整数——“除16取余”;小数——“乘16取整”。2125余数低位262┈┈┈1231┈┈┈0215┈┈┈127┈┈┈123┈┈┈121┈┈┈10┈┈┈1高位125D=1111101B例将十进制数125.6875转换成二进制数。整数部分125转换如下:0.6875×2高位1……1.3750×20……0.7500×21……1.5000×2低位1……1.0000为零结束小数部分0.6875转换如下:125.6875D=1111101.1011B将八进制数(714.431)8转换成二进制数714.431111001100.100011001(714.431)8=(111001100.100011001)23)非十进制数之间的相互转换八进制转换成二进制数小数点为界,向左或向右每一位八进制数用相应的三位二进制数取代。不足三位,取零补足。例如:1换3制011101110.001010110356.126即(11101110.00101011)2=(356.126)8二进制数转换成相应的八进制数只是上述方法的逆过程。例如:将二进制数(11101110.00101011)2转换成八进制数。3换1制只是上述方法的逆过程。十六进制数转换成相应的二进制数以小数点为界,向左或向右每一位十六进制数用相应的四位二进制数取代即可。如果不足四位,取零补足。二进制数转换成相应的十六进制数1换4制4换1制1、算术运算:加、减、乘、除3、关系运算:“大于”、“小于”、“等于”、“不等于”等等2、逻辑运算:“与”、“或”、“非”二进制的基本运算加法0+0=00+1=1+0=11+1=1算术运算逢二进一,向高位进位与(逻辑乘)0×0=01×0=0×1=01×1=1或(逻辑加)0+0=00+1=1+0=11+1=1非1=00=1逻辑运算可行性只有0和1两个状态简易性运算法则简单逻辑性1和0正好与逻辑代数中的真和假相对应可靠性0和1两个符号,存储、传输和处理时不容易出错二进制与计算机的密切关系,是与二进制本身所具有的特点分不开的。二进制的优点:8bit=1Byte(字节)1KB=210B=1024Byte1MB=210KB=1024KB1GB=210MB=1024MB一位二进制数在计算机中称为1bit(比特)计算机处理的数据有两种形式:数值型:可以参加算术运算非数值型:字符、图片、声音等字符型数据包括:文字、符号与数字等。数据与编码表字符型数据与数值型数据的差别:所有字符按事先约定的编码值表示。ASCII美国标准信息交换码(AmericanStandardCodeforInformationIntercharnge)ASCII码是用七位二进制表示一个字符。27=128通常一个ASCII码占1字节(8个bit),最高位置为0或用作奇偶校验位。西文字符数据编码:例:字母A的ASCII码值为(01000001)表1.4.1ASCII字符编码高位  低位000001010011100101110111   0000NULDLESP0@P`p   0001SOHDC1!1AQaq   0010STXDC2“2BRbr0011ETXDC3#3CScs0100EOTDC4$4DTdt0101ENQNAK%5EUeu0110ACKSYN&6FVfv0111BELETB‘7GWgw1000BSCAN(8HXhx1001HTEM)9IYiy1010LFSUB*:JZjz1011VTESC+;K[k{1100FFFS,l\l|1101CRGS-=M]m}1110SORS.N^n~1111SIUS/?O_oDELASCII码二进制十六进制十进制001100003048A10000014165a11000016197一个字节一般由8个二进位组成,其中最右边的一位称为“最低有效位”或“最低位”,最左面的一位称为“最高有效位”或“最高位”,每一个二进位的值是0或1。B、字节和位大多数计算机系统的内存储器是由许许多多被称为“字节”(byte)的单元组成的。在微型机中一般以4个字节存放一个实数,以2个字节存放一个整数。最左边的一位(最高位)用作数的符号位。表示数值,有不同的方法,一般有:原码、反码和补码。符号位0表示正号,1表示负号数值二进制形式表示。原码原码表示法是机器数的一种简单的表示法。设有一数为X,则原码表示可记作[X]原+7的原码为:00000111一7的原码为:10000111二进制的111代表十进制的7,十0的原码为00000000一0的原码为10000000+0和一0表示的是同一个数0,而在内存中却有两个不同的表示。即0的表示不唯一,说明以原码方式存放数据不适合于计算机的运算。例如三、反码正数:反码与原码相同。如:+7的反码为00000111。负数:符号位为1,其余各位是对原码取反。如:一7的反码为:11111000十0的反码为:00000000一0的反码为:11111111同样,o的表示不唯一。四、补码最好能做到将符号位和其它位统一处理。对减法也按加法来处理。这就是“补码”。原码和反码都不便于计算机内的运算,因为在运算中要单独处理其符号。设有一数X,则X的补码记作[X]补在计算机中,以一个有限长度的二进位作为数的模,(如用1个字节表示一个数,模为256。即逢256就进1------------1|00000000|-------------进位被丢弃。正数:其原码、反码、补码相同。例如,+7的补码也是00000111。负数:最高位为1,其余各位为原码的相应位取反,然后对整个数加1一7的原码:10000111一7的补码:第①步:11111000补码的规定:+1第②步:-----------11111001如果已知一个负数的补码,想将其转换为十进制数,补码中的最高位不改动,其余各位取反加1,得到原码。如11111001,先变成10000110,再加1得10000111,它是一7的原码。+0的补码表示为:00000000一0的补码可以这样求(1)最高位为1,其余各位为原码取反,即对00000000求反得11111111;②加1,得100000000,进位1被丢弃(因为一个字节只能容纳8位,256只能被存储为00000000)0的补码是唯一的。这样,用补码进行运算,减法可以用加法来实现,如十7一6应得1。可以将十7的补码和一6的补码相加,就得到结果值的补码。十7的补码:00000111一6的补码:11111010-----------------------------------------------(相加)100000001进位被舍去。后面8位00000001就是1的补码以补码表示的数表11.2-------------------------------------------------------数值|补码----------------------|---------------------------------0|00000000-1|11111111-2|11111110----------------------------------------------------------------------------------------------------------------------3|11111101-4|11111100.|..|.(往下不断减1).|.-127|10000001-128|10000000---------------------------|----------------------------------1|000000012|00000010.|..|.(往下不断加1).|.126|01111110127|01111111--------------------------------------------------------------可见,以补码形式在一个字节(8位)中存放一个数,最大值为127,最小值为一128。即数的范围为一128~127。计算机是以补码形式存放数的。练习3A7CH=B110011100101B=H求下列的数据的各种数码(8bit)表示X1=42X2=-42在计算机内一切信息的存取、传输和处理都是以()形式进行的。A)ASCII码B)二进制C)BCD码D)十六进制两个二进制数10011001与00101010之和是()。A)10111011B)11000011C)00001000D)10110011十进制数268转换成十六进制数是()。A)10BHB)10CHC)10DHD)10EH以下4个数虽然未标明属于哪一种数制,但是可以断定()不是八进制数。A)1101B)2325C)7286D)4357以知字母“F”的ASCII码是46H,则字母“f”的ASCII码是()。A)66HB)26HC)98HD)34H

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功