求教高手计算方法,谢谢!!
请各位高手帮助看看附图里的计算方法,我看不明白:
附图:http://www.5ivb.net/club/dispbbs.asp?boardid=1&id=18027&star=1#12977
假设数据为FF FF FF 40
第二字节的高位的值为((15-8)*2+8)*(2^-2)=5.5,第二字节的低位值为(15*2)*(2^-6)=0.46875,第三字节的高位的值为(15*2)*(2^-10)=0.02929
后面的值太少可以不用计算,但在编程时还是要计算的假设数据为11 11 11 41
则,第一字节41的值为8,第二字节的高位的值为1*(2^0)=1,第二字节的低位值为1*(2^-4)=0.0625,第三字节的高位的值为1*(2^-8)=0.0039
后面的值太少可以不用计算,但在编程时还是要计算的,否则不好编。
以上合计为9.0664,4舍5入为9.07。
假设数据为FF FF FF 40
第二字节的高位的值为:((15-8)*2+8)*(2^-2)=5.5
第二字节的低位值为(15*2)*(2^-6)=0.46875
第三字节的高位的值为(15*2)*(2^-10)=0.02929
请教为何这样算,还请高手帮助分析一下,谢谢!!!!
假设数据为11 11 11 41
第二字节的高位的值为1*(2^0)=1
第二字节的低位值1*(2^-4)=0.0625
第三字节的高位的值为1*(2^-8)=0.0039请教为何这样算,还请高手帮助分析一下,谢谢!!!!
另请帮助写一下以下几个数据的计算方式:
44 B1 A7 53 42 F2 46 24
4C CE 5B 26
请各位高手帮助看看附图里的计算方法,我看不明白:
附图:http://www.5ivb.net/club/dispbbs.asp?boardid=1&id=18027&star=1#12977
假设数据为FF FF FF 40
第二字节的高位的值为((15-8)*2+8)*(2^-2)=5.5,第二字节的低位值为(15*2)*(2^-6)=0.46875,第三字节的高位的值为(15*2)*(2^-10)=0.02929
后面的值太少可以不用计算,但在编程时还是要计算的假设数据为11 11 11 41
则,第一字节41的值为8,第二字节的高位的值为1*(2^0)=1,第二字节的低位值为1*(2^-4)=0.0625,第三字节的高位的值为1*(2^-8)=0.0039
后面的值太少可以不用计算,但在编程时还是要计算的,否则不好编。
以上合计为9.0664,4舍5入为9.07。
假设数据为FF FF FF 40
第二字节的高位的值为:((15-8)*2+8)*(2^-2)=5.5
第二字节的低位值为(15*2)*(2^-6)=0.46875
第三字节的高位的值为(15*2)*(2^-10)=0.02929
请教为何这样算,还请高手帮助分析一下,谢谢!!!!
假设数据为11 11 11 41
第二字节的高位的值为1*(2^0)=1
第二字节的低位值1*(2^-4)=0.0625
第三字节的高位的值为1*(2^-8)=0.0039请教为何这样算,还请高手帮助分析一下,谢谢!!!!
另请帮助写一下以下几个数据的计算方式:
44 B1 A7 53 42 F2 46 24
4C CE 5B 26
则 a<<1 左移位 得到结果 111000000000 00000000 00000000 00000111(32位整数)
a<<1
00000000 00000000 00000000 00001110 (整体左移一位)
vb中没有这个运算符,但观察移位的效果,相当与
00000000 00000000 00000000 00000111 乘以 2
所以在vb中 *2代表左移位运算
类似的,可以定义右移位例如
152(十进制) = 00000000 00000000 00000000 10011000 (二进制,补足32位)
要知道从右边数过来第四位到底是1还是0,怎么办?
首先,生成一个 mask = 00000000 00000000 00000000 00001000 = 2^3 = 2^(4-1)
152 = 00000000 00000000 00000000 10011000
两者进行and运算(vb中有And运算符)
得 00000000 00000000 00000000 00001000
右移3位
得 00000000 00000000 00000000 00000001
所以右边数过来第四位是1在vb中没有右移位这个运算符,但可以用 除移8代替(2^3)
事实上,乘以 2^n 就是左移n位 除以2^n 就是右移n位
这也说明了为什么计算机内部用二进制。
注册名:hh88855
密 码:35773437
登陆http://www.5ivb.net/club/dispbbs.asp?boardid=1&id=18027&star=1#12977
请您帮助,谢谢!!!!
这里的“字节”和“位”到底指什么?反正肯定不是计算机科学中的 byte and bit或者这根本就是一种规定?
假设数据为FF FF FF 40
第二字节的高位的值为:((15-8)*2+8)*(2^-2)=5.5 :::(8;8;(2^-2))
第二字节的低位值为(15*2)*(2^-6)=0.46875 :::((2^-6))
第三字节的高位的值为(15*2)*(2^-10)=0.02929 :::(*2;(2^-10))假设数据为11 11 11 41
第二字节的高位的值为1*(2^0)=1 :::(2^0)
第二字节的低位值1*(2^-4)=0.0625 :::(2^-4)
第三字节的高位的值为1*(2^-8)=0.0039 :::(2^-8)
求教引号后数值是如何取得的,谢谢!!!!!!!!!
另请用
1252493395(44 B1 A7 53)计算出应为1421228
1123173924(42 F2 46 24)计算出应为121136 1288592166(4C CE 5B 26)计算出应为128800
3个数据帮助做一下事例,谢谢!!!!!!!!!!!
首先要弄清楚的是
“第二字节的高位”到底指的是什么!
FF FF FF 40的第二字节毫无疑问是 FF
FF = 11111111
然而,这里的高位指的是
11111111 中的那一部分呢?
或者根本不是bit的意思