大家好啊。
第一部分:数据运算。数据运算分为逻辑运算,算数运算和移位运算,其中逻辑结构可分为两种:位模式下的逻辑运算和模式之间的逻辑运算,位移运算分为算数位移,循环移位,逻辑移位。逻辑运算按照大类可分为与,或,非三种,其中或运算又可以衍生出一种运算——异或,无论是位模式还是模式之间的运算都是这几种。我们就先以位模式为例,讲清楚这四种运算符(在离散数学中称为联结词,但那里面的联结词一共是有七种)。位模式下的逻辑运算是指在一个位模式中进行的运算,并且无论输入的值是一个还是两个,输出的值永远只有一个。与运算符是二元运算符,也就是必须有两个输入才会有一个输出,并且和它的英文名and一样,只有当输入的值都为真时输出的值才是真。其实我们可以按照命题的结构来理解,只有命题A和命题B同时为真的时候,我们才可以说他们的与结果运算是真。或运算符是只有输入的值全部为假时,输出的值才会是假。同样,我们来举个例子。假设我是男性,前提为A:我是人,B:我是女人,A与B明显是错的,因为我已经假设我是男性了,但是A或B是真的,因为我是人,这一个对了,整个命题就是正确的。非是这里面唯一一个一元运算符,只需要颠倒结果就可以了,把0变成1,把1变成0。或里面可能含有两种意思,一种是两者可能兼而有之,比如我想要车子或者房子,话后面就是说两个我都可以要。另一种是只能有其中一个,比如今天是星期一或星期二,今天只能是其中的一个,不能又是星期一又是星期二。而上面说的异或就是第二种,只能是其中一个。
位模式讲完了,那么模式之间的逻辑运算就可以理解了,区别就是一变多了,位数变多了。运算规则都是一样的,我们就来说一些特殊的——改变二进制的数值。我们可以用非作用于所有的位,使其完全反转,也可以用一个我们自己提供的特殊的二进制数和原数进行与,或,异或运算使其中一位或几位发生改变,这个特殊的二进制数被称为掩码。
算术运算中整数的加法和减法是很简单的,乘法和除法有些复杂以至于书只是提了一句,所以我还是先把加法和减法说说吧。浮点数的四则运算也是如此,后面等我搞懂了再说吧。前面我们知道了,计算机中整数大都是用补码表示法来存储的,那么加法就是将他们在计算机中的存储表示相对应,之后呢,将他们按照二进制方法相加就可以了。减法的运算是将其先转化为加法(A-B = A + B补),然后按照加法的运算规则进行运算。所以就是将被减数化成补码,然后将该补码和减数相加,结束。
移位运算,可分为三种。第一种,算术移位,这种方法用于补码表示法的整数中,向右移动一位时,符号位复制并且在移位完成后粘贴到符号位,最右边的数字丢失。但是向左移位一位时就是全体向左移动,最左边的数字丢失,符号位也没有复制粘贴的操作。第二种,逻辑移位。这种方法用于无符号整数,就是直接把整体向左或者向右移动一位,向左移动,最左边的数字就丢失,向右移动,最右边的数字就丢失。循环移位,同样也是应用于无符号整数,和逻辑移位的区别是,它的数字不会丢失而会依次插入因移位而空缺的位置上。
第一部分结束。
有些烦心事,似乎比我大的人都会用一个叫做社会经验的东西压我,哪怕是和我年龄相近的兄弟也是这样说。我和他们辩解,他们还说什么我所说的一切都是网上看来的,或许有一些确实是受到网络的影响,但不可否认的是我说的生死观点都是我上初一时在观察周边事物的基础上总结出来的。他们可以说我的观点错,但是为什么要抨击我观点的来源?也许是他们认为我受到了某音的影响?谁知道呢,我不看某音,这是令我自豪的点。
还有就是告诉大家,我要转移战场了,之前包括这些日记我都是在宿舍完成的,但是由于环境不佳(主要是我和室友的价值观冲突过大),之后的学习我都将在学校自习室完成。也是因为和室友价值观冲突过大,今天就没有第二部分了,很抱歉。