C++ Builder2009数据转换问题
各位前辈,大侠
我有一问题,这几天一直困扰我,要么编译不过,要么最后的显示结果不对。想实现的事情是这样的,把一个字节A,与另外一个字节B的前三位连接合并,A作为高8位,B作为低3位,形成一个11位的二进制数据C,且C的最高位bit[10],就是数据A的最高位bit[7]为符号位,把这样一个数,按照下列规则转换成10进制数(有正、有负),并显示出来[Label->Caption]。
数据C bit[0]等于数据B bit[5],代表0.125;
数据C bit[1]等于数据B bit[6],代表0.250;
数据C bit[2]等于数据B bit[7],代表0.500;
数据C bit[3]等于数据A bit[0],代表1.000;
数据C bit[4]等于数据A bit[1],代表2.000;
数据C bit[5]等于数据A bit[2],代表4.000;
数据C bit[6]等于数据A bit[3],代表8.000;
数据C bit[7]等于数据A bit[4],代表16.00;
数据C bit[8]等于数据A bit[5],代表32.00;
数据C bit[9]等于数据A bit[6], 代表64.00;
数据C bit[10]等于数据A bit[7], 代表符号位, 0表示正数,1表示负数;
当C bit[10]位1时,也是二进制逐位取反,+0.125来换算成相应的10进制数,例如:
A = 0000, 0000; B = 000; C = 0000, 0000, 000, 十进制为0;
A = 0000, 0001; B = 001; C = 0000, 0001, 001, 十进制为1.125;
A = 0000, 0010; B = 010; C = 0000, 0010, 010, 十进制为2.250;
A = 0001, 1001; B = 110; C = 0001, 1001, 110, 十进制为25.750;
A = 0111, 1111; B = 111; C = 0111, 1111, 111, 十进制为127.875;
A = 1111, 1110; B = 111; C = 1111, 1110, 111, 十进制为-1.125;
A = 1111, 1101; B = 110; C = 1111, 1101, 110, 十进制为-2.250;
A = 1110, 0110; B = 010; C = 1110, 0110, 010, 十进制为-25.75;
A = 1000, 0000; B = 001; C = 1000, 0000, 001, 十进制为-127.875;
请教给为给予指点,在线等,不吝赐教。