数值的表示方法一原码反码补码正数的原码、反码和补码相同1 的补码000000000000000132767的补码0111111111111111(215-1,2个字节的存储单元能表示的最大正数)负数的原码、反码和补码不同-1原码1000000000000001反码1111111111111110原码取反(符号位保持不变)口补码1111111111111111反码+1口
数值的表示方法-原码 反码 补码 ◼ 正数的原码、反码和补码相同 1 的补码 0 000 0000 0000 0001 . 32767 的补码 0 111 1111 1111 1111 (2 15-1,2个字节的存储单元能表示的最大正数) ◼ 负数的原码、反码和补码不同 -1 原码 1 000 0000 0000 0001 反码 1 111 1111 1111 1110 原码取反(符号位保持不变) 补码 1 111 1111 1111 1111 反码+1
原码反码补码32767补码0111111111111111-32767原码1111111111111111反码1000000000000000原码取反(符号位保持不变)补码1000000000000001反码+132768=-32767-11补码1000000000000000(2个字节的存储单元能表示的最小负数)
原码 反码 补码 32767 ◼ 补码 0 111 1111 1111 1111 -32767 ◼ 原码 1 111 1111 1111 1111 ◼ 反码 1 000 0000 0000 0000 原码取反(符号位保持不变) ◼ 补码 1 000 0000 0000 0001 反码+1 -32768 = -32767-1 ◼ 补码 1 000 0000 0000 0000 (2个字节的存储单元能表示的最小负数)
-32768-1013276732767+1=32768?100000000000000=-327683276701111111 11111111A0000000000000001000000000000000001111 111111111111-1-21111111111111110-327671000000000000001-327681000000000000000-32768-1=-32769?0111111111111111=32767
-32768 -1 0 1 32767 32767 0111 1111 1111 1111 . 1 0000 0000 0000 0001 0 0000 0000 0000 0000 -1 1111 1111 1111 1111 -2 1111 1111 1111 1110 . -32767 1000 0000 0000 0001 -32768 1000 0000 0000 0000 32767 + 1 = 32768 ? 1000 0000 0000 000 = -32768 -32768 - 1 = -32769 ? 0111 1111 1111 1111 = 32767
实型和字符型数据的存储■实型数据的存储-1.2345e+02符号位 阶码尾数■字符型数据的存储一个字节存储ASCI码。例如字符型常量‘A'的ASCII码为65,它在内存中以下列形式存放:01000001
实型和字符型数据的存储 ◼ 实型数据的存储 -1.2345e+02 符号位 阶码 尾数 ◼ 字符型数据的存储 一个字节存储ASCII码。 例如字符型常量 'A' 的ASCII码为65,它在内存 中以下列形式存放: 0 1 0 0 0 0 0 1
6.1.2基本数据类型整型有符号整型无符号整型数据长度int16或32位unsigned [int]16位short [int]unsigned short [int]32位long [int]unsigned long [int]字符型8位char实型(浮点型)32位单精度浮点型 float双精度浮点型double64位
6.1.2 基本数据类型 ◼ 整型 有符号整型 无符号整型 数据长度 int unsigned [int] 16或32位 short [int] unsigned short [int] 16位 long [int] unsigned long [int] 32位 ◼ 字符型 char 8位 ◼ 实型(浮点型) 单精度浮点型 float 32位 双精度浮点型 double 64位