问题4如何表示二进制的正负? 使用二进制数的最高位(最左位)表示正负,称为符号位 0表示正数,1表示负数 ●(123)10即 000000001101 ●(-123)10 1000000001111011 加减法表示不方便 如何区别0? 0 0000000000000000 1000000000000000 以补码形式存储负数 ●便于用统一的形式表示0 便于实现加减法运算
◼ 使用二进制数的最高位(最左位)表示正负,称为符号位 ◼ 0表示正数,1表示负数 ⚫ (123)10即 0000000001111011 ⚫ (-123)10即 1000000001111011 ◼ 加减法表示不方便 ◼ 如何区别0? ⚫ +0 0000000000000000 ⚫ -0 1000000000000000 ◼ 以补码形式存储负数 ⚫ 便于用统一的形式表示0 ⚫ 便于实现加减法运算 问题4 如何表示二进制的正负?
问题4如何表示二进制的正负? 补码 正数和零的原码、反码、补码均相同 负数:原码->反码(原码按位取反->补码(=反码+1) ●例如:(-123) 10 ◆原码 0000000001111011 ◆反码: 1111111110000100 ◆补码 l111111110000101 例如:(-1)10 ◆原码: 0000000000000001 ◆反码 1111111111111110 ◆补码 1111111111111111
◼ 补码 ◼ 正数和零的原码、反码、补码均相同 ◼ 负数:原码 -> 反码(原码按位取反) -> 补码(=反码+1) ⚫ 例如: (-123)10 ◆原码: 0000000001111011 ◆反码: 1111111110000100 ◆补码: 1111111110000101 ⚫ 例如: (-1)10 ◆原码: 0000000000000001 ◆反码: 1111111111111110 ◆补码: 1111111111111111 问题4 如何表示二进制的正负?
问题5数据在程序中是如何表示的? 二进制的压缩表示:八进制、十六进制 二进制和八进制如何相互转换? 3位一组,直接转换 二进制。000001-010011°100101-110111 八进制。01.234 (1100110 分组:1,111,11,110,000,101 转换:(177605)s (1234567)8 转换:001,010,011,100,101,110,111 转换:(10100111001011011)2
◼ 二进制的压缩表示:八进制、十六进制 ◼ 二进制和八进制如何相互转换? ◼ 3位一组,直接转换 问题5 数据在程序中是如何表示的? (1111111110000101)2 分组:1,111,111,110,000,101 转换:(177605)8 (1234567)8 转换:001,010,011,100,101,110,111 转换:(1010011100101110111)2
问题5数据在程序中是如何表示的? 二进制和十六进制如何相互转换? ■4位一组,直接转换,用AF表示10-15 十进制 2 3 4 54 6 7 二进制00000001001000110100。01010110。011 十六进制0 7 十进制。8 10. 11. 13 14 15 二进制100010014101010114110041101+1110111l 十六进制8 9 A B C D E F (11111100101) 分组:1111,1111,1000,0101 转换:(FF85) (3A4E)16 转换:0011,1010,0100,1110 转换:(11101001001110)2
◼ 二进制和十六进制如何相互转换? ◼ 4位一组,直接转换,用A-F表示10-15 问题5 数据在程序中是如何表示的? (1111111110000101)2 分组:1111,1111,1000,0101 转换:(FF85)16 (3A4E)16 转换:0011,1010,0100,1110 转换:(11101001001110)2
常量 常量就是在程序使用之前预先设定并在整个 运行过程中没有变化的量。 C语言有两种实现常量的方法: 直接常量和符号常量
常量 常量就是在程序使用之前预先设定并在整个 运行过程中没有变化的量。 C语言有两种实现常量的方法: 直接常量和符号常量