四、简单数据的描述 一一基本数据类型和表达式 (深入话题
四、 简单数据的描述 −−基本数据类型和表达式 (深入话题)
主要内容 整数和实数的机内表示 位操作 ■操作数的类型转换 短路求值 带副作用的操作符的表达式计算 左值表达式和右值表达式
主要内容 ◼ 整数和实数的机内表示 ◼ 位操作 ◼ 操作数的类型转换 ◼ 短路求值 ◼ 带副作用的操作符的表达式计算 ◼ 左值表达式和右值表达式
inti=2147483647: int j=10; cout<<i+j;/结果:-2147483639,为什么? double d1=0.1,d2=0.2,d3=0.3; if(d1+d2==d3) cout<≤"OK";/结果没输出!为什么?
int i=2147483647; int j=10; cout << i+j; //结果:-2147483639,为什么? double d1=0.1,d2=0.2,d3=0.3; if (d1+d2 == d3) cout << "OK"; //结果没输出!为什么?
整数的机内表示 原码表示 。用一个二进制位表示符号(0表示正;1表示负), 其它位为二进制表示的绝对值 例如,如果用一个字节存储整数的原码,则 12表示为00001100:-12表示为10001100 。对于由个二进位构成的原码,它能表示的整数范 围是: -(2n-1-1)~2n-1-1,其中有两个零:00..0和10..0
◼ 原码表示 • 用一个二进制位表示符号(0表示正;1表示负), 其它位为二进制表示的绝对值。 • 例如,如果用一个字节存储整数的原码,则 ◼ 12表示为 00001100;-12表示为10001100 • 对于由n个二进位构成的原码,它能表示的整数范 围是: ◼ -(2n-1-1)~2n-1-1,其中有两个零:00...0和10...0。 整数的机内表示
■2的补码表示 。正整数的补码为它的二进制原码表示;负整数的补 码为把相应正整数的各个二进制位取反后得到的值 加1。 例如:如果用一个字节存储整数的补码,则 12表示为: 00001100:-12表示为:11110100 对于由个二进位构成的补码,它能表示的整数范 围是: -2n-1~2n-1-1,其中,00..0表示零,10..0表示-2n-1
◼ 2的补码表示 • 正整数的补码为它的二进制原码表示;负整数的补 码为把相应正整数的各个二进制位取反后得到的值 加1。 • 例如:如果用一个字节存储整数的补码,则 ◼ 12表示为: 00001100;-12表示为:11110100 • 对于由n个二进位构成的补码,它能表示的整数范 围是: ◼ -2n-1~2n-1-1,其中,00...0表示零,10...0表示-2n-1