网络工程师 (1)数据的表示
一、R进制的表示及互转
R进制是一种数制表示方法,其中R代表基数,采用R个基本符号(0, 1, 2, …, R-1)表示各位上的数字,并遵循“逢R进一”的运算规则。在R进制中,每一位上的数字均不超过R-1。R进制与十进制之间可以相互转换,转换时需按位展开或进行除基取余、乘基取整等操作。常见的R进制包括二进制、八进制和十六进制等,它们在计算机系统中有着广泛的应用。
二、原码、反码和补码
定义:
- 原码:是一种直接表示数值的方法,其中最高位用来表示符号(0为正,1为负),其余位表示数值本身。
- 反码:是一种用于简化二进制加减运算的表示方法。正数的反码与原码相同;负数的反码是原码除符号位外,其余各位取反(0变1,1变0)。
- 补码:是目前计算机系统中最常用来表示有符号整数的方法。正数的补码与原码相同;负数的补码是在其原码的基础上,符号位不变,其余各位取反后加1(即在反码的基础上加1)。
表示方法:
- 原码:直接用二进制数表示数值,最高位为符号位。
- 反码:对于正数,反码与原码相同;对于负数,反码是原码除符号位外其余位取反。
- 补码:对于正数,补码与原码相同;对于负数,补码是反码加1。
运算规则:
- 原码:运算时符号位不能直接参与运算,必须和其他位分开,这增加了硬件的开销和复杂性。此外,原码不能直接用于加减运算,因为可能会出现错误结果。
- 反码:简化了减法运算,因为减去一个数等同于加上它的反码。但反码存在两个零的表示(+0和-0的反码相同),这在硬件上处理起来比较复杂。
- 补码:进一步简化了加减运算,只需要处理加法即可。补码只有一个零的表示(00000000),这大大简化了计算机的算术逻辑单元(ALU)的设计。使用补码,加法和减法运算可以统一处理,意味着计算机的硬件只需要实现加法逻辑,减法可以通过加一个数的补码来实现。
三、逻辑运算
逻辑与(AND)
- 定义:两个操作数同时为真时,结果为真;否则为假。
- 符号:&(在大多数编程语言中)。
- 示例:1 & 1 = 1,1 & 0 = 0。
逻辑或(OR)
- 定义:两个操作数中只要有一个为真,结果为真;两者都为假时,结果为假。
- 符号:|(在大多数编程语言中)。
- 示例:1 | 0 = 1,0 | 0 = 0。
逻辑异或(XOR)
- 定义:两个操作数相同时,结果为假;不同时,结果为真。
- 符号:^(在大多数编程语言中)。
- 示例:1^0 = 1。
逻辑非(NOT)
- 定义:操作数为真时,结果为假;操作数为假时,结果为真。
- 符号:!(在大多数编程语言中),或在某些上下文中使用波浪线(~)表示按位取反(但这与逻辑非在概念上有所不同,逻辑非是针对布尔值的,而按位取反是针对二进制数的每一位的)。
- 示例:!1 = 0,!0 = 1。
结语
生活就像一盒巧克力
你永远不知道你会得到什么
!!!