01 2020 档案
摘要:1.无符号数加法 非负整数x,y,满足0<=x,y<2ω,x和y都能表示为ω位的无符号整数。 x+y的范围是[0,2*2ω-2),这就有可能需要ω+1位来表示。 计算机在进行无符号数的加法时,用ω+1位来运算,实际结果是截断此运算结果ω位得到的,即丢弃最高位。 可以分两种情况来看: 1)若x+y的范
阅读全文
摘要:背景:不同字长的整数进行转换,需要在不改变数的大小的前提下将较小的数据类型转为更大的数据类型。 无符号数的扩展:开头加0即可,也叫零扩展。 有符号数(补码)的扩展:开头添符号位。 1 short sx = -12345; 2 unsigned short usx = sx; 3 int x = sx
阅读全文
摘要:1.二叉搜索树(BST,Binary Search Tree) 顺序性:对于任意节点r,其左子树中的所有节点均<=r,其右子树的所有节点均>=r。 单调性:BST的中序遍历序列为单调递增序列。 ↑BST中的节点与中序编列中的节点一一对应,上下对齐 查找算法:类似二分查找,比较大小,定位节点。 1 t
阅读全文
摘要:C语言在处理无符号数时,将有符号数强制类型转换为无符号数进行运算。 这种行为对一般的算术运算没有影响,比如 1 int a=-10; 2 unsigned b=12; 3 printf("%d\n",a+b); 4 printf("%u\n",a+b); 运行结果 但是对于比较运算符(>,<,==)
阅读全文