acm竞赛位运算简介及实用技巧~

合集下载

ACM程序设计算法讲解

ACM程序设计算法讲解

目录1.河内之塔 (3)2.Algorithm Gossip:费式数列 (4)3.巴斯卡三角形 (5)4。

Algorithm Gossip: 三色棋 (6)5.Algorithm Gossip:老鼠走迷官(一) (8)6.Algorithm Gossip: 老鼠走迷官(二) (10)7。

Algorithm Gossip: 骑士走棋盘 (11)8.Algorithm Gossip:八皇后 (14)9.Algorithm Gossip: 八枚银币 (16)10.Algorithm Gossip: 生命游戏 (18)11.Algorithm Gossip: 字串核对 (21)12。

Algorithm Gossip: 双色、三色河内塔 (23)13。

Algorithm Gossip: 背包问题(Knapsack Problem) (28)14。

Algorithm Gossip:蒙地卡罗法求PI (32)15.Algorithm Gossip: Eratosthenes筛选求质数 (34)16。

Algorithm Gossip: 超长整数运算(大数运算) (35)17.Algorithm Gossip: 长PI (37)18。

Algorithm Gossip: 最大公因数、最小公倍数、因式分解 (40)19。

Algorithm Gossip:完美数 (44)20.Algorithm Gossip: 阿姆斯壮数 (47)21。

Algorithm Gossip:最大访客数 (48)22。

Algorithm Gossip: 中序式转后序式(前序式) (50)23。

Algorithm Gossip:后序式的运算 (53)24.Algorithm Gossip:洗扑克牌(乱数排列) (55)25。

Algorithm Gossip:Craps赌博游戏 (57)26.Algorithm Gossip:约瑟夫问题(Josephus Problem) (59)27。

16个ACM经典算法介绍

16个ACM经典算法介绍

16个ACM经典算法介绍1.深度优先(DFS)DFS是一种递归的算法,用于遍历或图、树或状态空间。

它从起始节点开始遍历,然后沿着一条路径一直遍历到最深处,然后回溯到上一个节点,继续遍历其他路径。

2.广度优先(BFS)BFS也是一种遍历算法,但与DFS不同的是,它先遍历当前节点的所有相邻节点,然后再遍历相邻节点的相邻节点,以此类推。

BFS通常使用队列数据结构,先进先出。

3. 迪杰斯特拉算法 (Dijkstra's Algorithm)迪杰斯特拉算法用于求解带权图中的最短路径问题。

它采用贪心策略,每次选择当前节点到其他节点的最短路径,从起始节点开始逐步扩展,直到到达目标节点。

4. 弗洛伊德算法 (Floyd's Algorithm)弗洛伊德算法用于求解图中所有节点之间的最短路径。

它采用动态规划的思想,通过不断更新节点之间的最短路径,最终求得所有节点之间的最短路径。

5. 快速排序 (Quick Sort)快速排序是一种高效的排序算法,它通过选择一个基准元素,将待排序列表划分为左右两部分,左边部分都小于基准元素,右边部分都大于基准元素,然后对左右两部分分别递归地进行排序。

6. 归并排序 (Merge Sort)归并排序是一种稳定的排序算法,它将待排序列表分成长度相等的两部分,然后分别对这两部分进行排序,最后将排序好的两部分再合并成一个有序列表。

7. 堆排序 (Heap Sort)堆排序利用二叉堆数据结构实现,它将待排序列表看作是一颗完全二叉树,利用堆的性质对其进行排序。

8. Prim算法 (Prim's Algorithm)Prim算法用于求解最小生成树问题,它从一个节点开始,然后逐步扩展,每次选择当前节点到其他节点的最小权值边,直到生成一棵包含所有节点的树。

9. Kruskal算法 (Kruskal's Algorithm)Kruskal算法也用于求解最小生成树问题,它通过对所有边按权重从小到大进行排序,然后逐步加入图中,直到生成一棵包含所有节点的树。

ACM竞赛中的数学方法初步(二)

ACM竞赛中的数学方法初步(二)

ACM竞赛中的数学方法初步(二)1. 引言ACM竞赛中的数学方法是竞赛中必不可少的一部分。

在竞赛中,数学方法可以帮助选手快速解决问题,提高竞赛成绩。

本文将介绍一些ACM竞赛中常用的数学方法。

2. 组合数学组合数学是ACM竞赛中最常用的数学方法之一。

组合数学包括排列组合、二项式定理、卡特兰数等。

在竞赛中,选手可以通过组合数学来求解排列组合问题,计算概率等。

例如,求解一个n个元素的集合中,取出m个元素的所有组合数,可以使用组合数公式C(n,m)=n!/m!(n-m)!来计算。

3. 数论数论是ACM竞赛中另一个重要的数学方法。

数论包括质数、最大公约数、最小公倍数、欧拉函数等。

在竞赛中,选手可以使用数论来解决一些特殊的问题,例如求解最大公约数、最小公倍数等。

例如,求解两个数a和b的最大公约数,可以使用辗转相除法来计算。

4. 矩阵矩阵是ACM竞赛中常用的数学工具。

在竞赛中,选手可以使用矩阵来解决一些复杂的问题,例如线性方程组、矩阵乘法等。

例如,求解一个n阶线性方程组Ax=b,可以使用矩阵的逆来计算。

5. 微积分微积分是ACM竞赛中较为高级的数学方法。

在竞赛中,选手可以使用微积分来解决一些复杂的问题,例如极值、最优化等。

例如,求解一个函数的最大值或最小值,可以使用微积分的极值定理来计算。

6. 几何几何是ACM竞赛中常用的数学方法之一。

在竞赛中,选手可以使用几何来解决一些几何问题,例如计算面积、周长等。

例如,求解一个三角形的面积,可以使用海伦公式来计算。

7. 结论ACM竞赛中的数学方法是竞赛中必不可少的一部分。

在竞赛中,选手可以使用组合数学、数论、矩阵、微积分、几何等数学方法来解决问题。

选手需要熟练掌握这些数学方法,才能在竞赛中取得好成绩。

ACM入门之三-位运算ppt课件

ACM入门之三-位运算ppt课件

上面程序的输出结果是:
n1=78000,n2=-32768,n3=32768,c=c0,c<<4=3072
右移运算符
右移运算符“>>”是双目运算符。
其计算结果是把“>> ”的左操作数的各二进位全部 右移若干位后得到的值,要移动的位数就是“>>”的 右操作数。移出最右边的位就被丢弃。
对于有符号数,如long,int,short,char类型变量, 在右移时,符号位(即最高位)将一起移动, 并且大多数C/C++编译器规定,如果原符号位 为1,则右移时右边高位就补充1,原符号位为0, 则右移时高位就补充0。
右移运算符实例
#include <stdio.h> main() { int n1 = 15; short n2 = -15; unsigned short n3 = 0xffe0; unsigned char c = 15; n1 = n1>>2; n2 >>= 3; n3 >>= 4; c >>= 3; printf(
例如:表达式“21 | 18 ”的值是23(即二进制数 10111)。 按位或运算通常用来将某变量中的某些位置1或 保留某些位不变。 例如,如果需要将int型变量n的低8位全置成1, 而其余位不变,则可以执行:
n |= 0xff;
13
按位异或
按位异或运算符“^”是双目运算符。
功能:将参与运算的两操作数各对应的二进制位进 行异或操作,即只有对应的两个二进位不相同时, 结果的对应二进制位才是1,否则为0。
HDU3782xxx定律
/showproblem.php?pid=3782 Problem Description

位运算技巧

位运算技巧

位运算技巧位运算是计算机科学中非常重要的技术,它被广泛应用于软件设计和实现中。

此外,它还可用于实现更高效的算法,如排序和搜索算法。

许多软件开发人员可能不熟悉位运算,但它可以有效地提高程序性能。

位运算技巧是指使用位运算来完成特定任务或操作的技术。

它可以应用于处理数据,实现算法和执行指令,以替代传统技术,从而提高程序性能,缩短程序执行时间和减少代码行数。

位运算通常使用2进制和16进制表示法来表示数字,可以用位操作符(AND、OR、NOT)来更改并处理数据。

常见的位操作技巧包括位运算移位,位检查,位测试,位组合计算,位清楚和位设置等。

位移位运算是指将数字右移或左移以反映更高一级的数字或位数。

它可以帮助我们清楚地在2进制或16进制中表示数字,并可以更快地计算。

例如,在2进制中,给定十进制数字11,可以通过右移2位(001100b)将其转换为十进制数字3。

位检查运算可以用来检查给定数据中的特定位是否为1,从而用于算法的选择和控制。

例如,可以使用位检查运算执行奇偶检查,以及更复杂的算法,例如汉明距离,以计算两个字符串之间的匹配程度。

位测试与位检查类似,但是位测试会检查特定位上的值是否等于一个预定义的值,而不是仅检查其是否为1。

例如,可以使用位测试运算检查特定字节内的值是否满足某些特定条件。

位组合计算可以用来将位从一组特定的数据中捕获,并将其合并成一个新的数字。

这在处理复杂的数据结构时非常有用,可以将结构中的位组合起来,以生成新的值。

清除位运算可用于清除/禁用/取消给定数据中的特定位。

例如,可以使用清除位运算清除不需要的符号,或者让字节只具有所需的信息。

位设置运算是指将特定位设置为1,以触发特定的行为。

例如,可以使用位设置运算来触发标志位,从而改变程序的执行流程。

位运算技巧在计算机科学中有着重要的地位,它可以用来实现更快的算法,更高效的程序,更少的代码行数,以及更快的代码执行时间。

虽然它可能需要一定的学习成本,但一旦掌握了位运算技巧,它就可以显著提高代码性能和可维护性。

acm竞赛知识点

acm竞赛知识点

ACM竞赛知识点简介ACM竞赛是指由国际大学生程序设计竞赛(ACM-ICPC)组织的一系列编程比赛。

ACM竞赛旨在培养学生的计算机科学和编程能力,提高解决实际问题的能力和团队合作精神。

本文将介绍ACM竞赛的基本知识点和技巧,帮助读者更好地了解和参与这一竞赛。

知识点1. 数据结构在ACM竞赛中,数据结构是解决问题的关键。

以下是一些常用的数据结构:•数组:用于存储一组相同类型的数据。

•链表:用于存储和操作具有相同数据类型的元素。

•栈:一种后进先出(LIFO)的数据结构。

•队列:一种先进先出(FIFO)的数据结构。

•树:一种非线性的数据结构,由节点和边组成。

•图:一种由节点和边组成的数据结构,用于表示各种关系。

2. 算法ACM竞赛中常用的算法包括:•排序算法:如快速排序、归并排序、堆排序等,用于将数据按照一定的规则进行排序。

•查找算法:如二分查找、哈希表等,用于在数据中查找指定的元素。

•图算法:如深度优先搜索(DFS)、广度优先搜索(BFS)、最短路径算法等,用于解决图相关的问题。

•动态规划:一种将复杂问题分解为简单子问题的方法,用于解决多阶段决策问题。

•贪心算法:一种每一步都选择当前最优解的方法,用于解决优化问题。

3. 数学数学在ACM竞赛中扮演着重要的角色。

以下是一些常用的数学知识点:•组合数学:包括排列组合、二项式定理、卡特兰数等,用于计算对象的排列和组合方式。

•数论:包括素数、最大公约数、最小公倍数等,用于解决与整数相关的问题。

•概率与统计:包括概率分布、统计推断等,用于分析和预测事件发生的概率。

•矩阵与线性代数:用于解决与矩阵和线性方程组相关的问题。

4. 字符串处理在ACM竞赛中,字符串处理是常见的问题之一。

以下是一些常用的字符串处理技巧:•字符串匹配:如KMP算法、Boyer-Moore算法等,用于在一个字符串中查找另一个字符串。

•字符串排序:如字典序排序、后缀数组等,用于对字符串进行排序。

位运算技巧

位运算技巧

位运算技巧位运算是计算机科学中最重要的一项技术。

它用于快速高效地解决各种计算问题。

许多程序员和计算机专家都熟悉它,并积极利用它来增强自己的应用程序和解决复杂问题。

本文将概述位运算技巧及其在计算机编程中的应用。

位运算是由数值运算而来的,它是一种基于位的数学操作,可以在数字计算机中完成。

位运算通常涉及一系列位运算符,如按位或、按位异或、按位与和按位非等。

它们分别表示对两个数值进行逻辑运算的动作。

从位运算的角度来看,数值的每一位可以被看作一个逻辑变量,它们的值可以分别被看作是0或1。

当数值被看作是0或1时,位运算可以用来计算出另外一个结果值。

位运算的优势之一是它的速度。

这个技术的运算过程虽然很简单,但是速度快。

它不会因为输入数据的大小而改变,因此在处理大数据量的时候,它可以大大提升程序的运行效率。

此外,由于位运算只会产生一个结果,因此可以减少计算机所使用的时间和空间,从而提高程序的运行效率。

位运算也可用于保护程序代码。

比如,可以使用位运算在程序中实现加密功能。

假设A是要加密的程序代码,B是要用来对A进行加密的密钥,那么可以使用位运算来实现A的加密。

具体的操作方法是,使用一个位运算符,如按位异或,来逐位与B进行操作,这样可以把A转换成一种新的数据,从而实现加密。

此外,位运算还可以用于处理大量数据,有效地提高处理效率。

例如,当要对大量数据进行校验和操作时,可以使用位运算符来检查那些数据的第n位是否相等,这非常实用。

另外,位运算还可以用来实现压缩。

通过让表达式只包含常量数值和位运算符,可以把很长的代码压缩成比较短的表达式。

位运算的应用不仅仅局限于计算机科学,它也可以在其他领域中使用。

例如,位运算可以用来检查数值是否为偶数或奇数,实现二进制与十进制之间的转换,也可以用在移位运算、编码转换以及错误检测等各种操作中。

综上所述,位运算技巧是一项非常有用的技术,它可以在计算机编程中大大提升程序的运行效率,而且应用范围也很广泛。

ACM竞赛中的数学方法初步(一)

ACM竞赛中的数学方法初步(一)

ACM竞赛中的数学方法初步(一)ACM竞赛是一个从数字、数据结构到计算机原理的广泛内容的竞赛,也是一个需要创造性思维、快速计算和应用数学知识的竞赛。

数学概念和算法在ACM竞赛中起着重要的作用。

以下是一些ACM竞赛中基本的数学方法。

1.组合:组合即是从给定的数或对象中选择出若干个数或者对象并成一组的所有方案的总数,组合数常表示为C(n,m)。

在ACM竞赛中,组合数有很多应用,如背包问题、统计问题等。

2.排列:排列是指从n个不同的元素当中选取m个不同的元素进行排列,则有n!/(n-m)!种排列;如果选取的元素不相同,则每一个排列都是不同的,称为有序排列;反之,如果选取的元素相同,则每一个排列的不同之处只在于元素的排列顺序不同,称为无序排列。

3.数学运算:在ACM中,基本的数学运算有加减乘除,还包括取余操作(%),取模操作(mod)等。

如果这些操作未能掌握,通常需要进行一些练习,理解其计算过程。

4.递推公式:递推公式也称为递归公式。

在ACM竞赛中,很多算法都运用了递推公式,如斐波那契数列、卡特兰数等。

因此,了解这些递推公式的通项表达式和递推表达式有助于学习和掌握这些算法。

5.数论:数论是研究整数和整数间相互关系的一门数学学科。

在ACM竞赛中,数论经常出现在解决一些经典问题,如质数判定、最大公约数、最小公倍数等。

掌握数论知识可以帮助选手快速解决这些问题。

综上所述,ACM竞赛中的数学方法多种多样,从组合到数论,但所有的方法都是为了解决计算机科学中的问题。

因此,在考试之前,希望选手们能够了解这些基本的数学方法,不断提升自己的解题能力并勇攀高峰。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

位运算简介及实用技巧转载者注:最近在论坛上看到些十分空虚、空大的帖子。

觉得编程还是要讲点实践,实践出真知。

众所周知,人和电脑处理的方式究竟还是不同的,否则人人都是计算机程序员了。

有些东西对人说很容易,而对计算机来说很难,反之亦然。

位操作就是人和电脑处理方式不同的体现,有些人认为这个东西有些BT,但其实非常高效的程序大多都是用位操作优化,因为它十分底层,速度极快。

其实位操作也有他自己独特的性质,只要我们能熟练得掌握,就可以更好得驾驭我们的程序,这也是我转此帖的目的。

PS:不要把注意力集中在语言上,所有语言都是一样的,只是工具而已。

去年年底写的关于位运算的日志是这个Blog里少数大受欢迎的文章之一,很多人都希望我能不断完善那篇文章。

后来我看到了不少其它的资料,学习到了更多关于位运算的知识,有了重新整理位运算技巧的想法。

从今天起我就开始写这一系列位运算讲解文章,与其说是原来那篇文章的follow-up,不如说是一个remake。

当然首先我还是从最基础的东西说起。

什么是位运算?程序中的所有数在计算机内存中都是以二进制的形式储存的。

位运算说穿了,就是直接对整数在内存中的二进制位进行操作。

比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and 运算。

举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理):110AND 1011----------0010 --> 2由于位运算直接对内存数据进行操作,不需要转成十进制,因此处理速度非常快。

当然有人会说,这个快了有什么用,计算6 and 11没有什么实际意义啊。

这一系列的文章就将告诉你,位运算到底可以干什么,有些什么经典应用,以及如何用位运算优化你的程序。

Pascal和C中的位运算符号下面的a和b都是整数类型,则:C语言 | Pascal语言-------+-------------a &b | a and ba |b | a or ba ^b | a xor b~a | not aa <<b | a shl ba >>b | a shr b注意C中的逻辑运算和位运算符号是不同的。

520|1314=1834,但520||1314=1,因为逻辑运算时520和1314都相当于True。

同样的,!a和~a也是有区别的。

各种位运算的使用=== 1. and运算 ===and运算通常用于二进制取位操作,例如一个数 and 1的结果就是取二进制的最末位。

这可以用来判断一个整数的奇偶,二进制的最末位为0表示该数为偶数,最末位为1表示该数为奇数.=== 2. or运算 ===or运算通常用于二进制特定位上的无条件赋值,例如一个数or 1的结果就是把二进制最末位强行变成1。

如果需要把二进制最末位变成0,对这个数or 1之后再减一就可以了,其实际意义就是把这个数强行变成最接近的偶数。

=== 3. xor运算 ===xor运算通常用于对二进制的特定一位进行取反操作,因为异或可以这样定义:0和1异或0都不变,异或1则取反。

xor运算的逆运算是它本身,也就是说两次异或同一个数最后结果不变,即(a xor b) xor b = a。

xor运算可以用于简单的加密,比如我想对我MM说1314520,但怕别人知道,于是双方约定拿我的生日19880516作为密钥。

1314520 xor 19880516 = 20665500,我就把20665500告诉MM。

MM再次计算20665500 xor 19880516的值,得到1314520,于是她就明白了我的企图。

下面我们看另外一个东西。

定义两个符号#和@(我怎么找不到那个圈里有个叉的字符),这两个符号互为逆运算,也就是说(x # y) @ y = x。

现在依次执行下面三条命令,结果是什么?复制内容到剪贴板代码:x <- x # yy <- x @ yx <- x @ y执行了第一句后x变成了x # y。

那么第二句实质就是y <- x # y @ y,由于#和@互为逆运算,那么此时的y变成了原来的x。

第三句中x 实际上被赋值为(x # y) @ x,如果#运算具有交换律,那么赋值后x 就变成最初的y了。

这三句话的结果是,x和y的位置互换了。

(转载者注:怪不得有些东西可以这么用,这才是实质啊!)加法和减法互为逆运算,并且加法满足交换律。

把#换成+,把@换成-,我们可以写出一个不需要临时变量的swap过程(Pascal)。

复制内容到剪贴板代码:procedure swap(var a,b:longint);begina:=a + b;b:=a - b;a:=a - b;end;好了,刚才不是说xor的逆运算是它本身吗?于是我们就有了一个看起来非常诡异的swap过程:复制内容到剪贴板代码:procedure swap(var a,b:longint);begina:=a xor b;b:=a xor b;a:=a xor b;end;=== 4. not运算 ===not运算的定义是把内存中的0和1全部取反。

使用not运算时要格外小心,你需要注意整数类型有没有符号。

如果not的对象是无符号整数(不能表示负数),那么得到的值就是它与该类型上界的差,因为无符号类型的数是用$0000到$FFFF依次表示的。

下面的两个程序(仅语言不同)均返回65435。

复制内容到剪贴板代码:vara:word;begina:=100;a:=not a;writeln(a);end.复制内容到剪贴板代码:#include <stdio.h>int main(){unsigned short a=100;a = ~a;printf( "%d\n", a );return 0;}如果not的对象是有符号的整数,情况就不一样了,稍后我们会在“整数类型的储存”小节中提到。

=== 5. shl运算 ===a shl b就表示把a转为二进制后左移b位(在后面添b个0)。

例如100的二进制为1100100,而110010000转成十进制是400,那么100 shl 2 = 400。

可以看出,a shl b的值实际上就是a乘以2的b次方,因为在二进制数后添一个0就相当于该数乘以2。

通常认为a shl 1比a * 2更快,因为前者是更底层一些的操作。

因此程序中乘以2的操作请尽量用左移一位来代替。

定义一些常量可能会用到shl运算。

你可以方便地用1 shl 16 - 1来表示65535。

很多算法和数据结构要求数据规模必须是2的幂,此时可以用shl来定义Max_N等常量。

=== 6. shr运算 ===和shl相似,a shr b表示二进制右移b位(去掉末b位),相当于a除以2的b次方(取整)。

我们也经常用shr 1来代替div 2,比如二分查找、堆的插入操作等等。

想办法用shr代替除法运算可以使程序效率大大提高。

最大公约数的二进制算法用除以2操作来代替慢得出奇的mod运算,效率可以提高...。

.......60%位运算的简单应用有时我们的程序需要一个规模不大的Hash表来记录状态。

比如,做数独时我们需要27个Hash表来统计每一行、每一列和每一个小九宫格里已经有哪些数了。

此时,我们可以用27个小于2^9的整数进行记录。

例如,一个只填了2和5的小九宫格就用数字18表示(二进制为000010010),而某一行的状态为511则表示这一行已经填满。

需要改变状态时我们不需要把这个数转成二进制修改后再转回去,而是直接进行位操作。

在搜索时,把状态表示成整数可以更好地进行判重等操作。

这道题是在搜索中使用位运算加速的经典例子。

以后我们会看到更多的例子。

下面列举了一些常见的二进制位的变换操作。

功能 | 示例 | 位运算----------------------+---------------------------+--------------------去掉最后一位 | (101101->10110) | x shr 1在最后加一个0 | (101101->1011010) | x shl 1在最后加一个1 | (101101->1011011) | x shl 1+1把最后一位变成1 | (101100->101101) | x or 1把最后一位变成0 | (101101->101100) | x or 1-1最后一位取反 | (101101->101100) | x xor 1把右数第k位变成1 | (101001->101101,k=3) | x or (1 shl (k-1))把右数第k位变成0 | (101101->101001,k=3) | x and not (1 shl (k-1)) 右数第k位取反 | (101001->101101,k=3) | x xor (1 shl (k-1))取末三位 | (1101101->101) | x and 7取末k位 | (1101101->1101,k=5) | x and (1 shl k-1)取右数第k位 | (1101101->1,k=4) | x shr (k-1) and 1把末k位变成1 | (101001->101111,k=4) | x or (1 shl k-1)末k位取反 | (101001->100110,k=4) | x xor (1 shl k-1)把右边连续的1变成0 | (100101111->100100000) | x and (x+1)把右起第一个0变成1 | (100101111->100111111) | x or (x+1)把右边连续的0变成1 | (11011000->11011111) | x or (x-1)取右边连续的1 | (100101111->1111) | (x xor (x+1)) shr 1去掉右起第一个1的左边 | (100101000->1000) | x and (x xor (x-1)) 最后这一个在树状数组中会用到。

Pascal和C中的16进制表示Pascal中需要在16进制数前加$符号表示,C中需要在前面加0x来表示。

这个以后我们会经常用到。

整数类型的储存我们前面所说的位运算都没有涉及负数,都假设这些运算是在unsigned/word类型(只能表示正数的整型)上进行操作。

但计算机如何处理有正负符号的整数类型呢?下面两个程序都是考察16位整数的储存方式(只是语言不同)。

相关文档
最新文档