标题: 单片机初学中遇到的问题 [打印本页]

作者: piao99    时间: 2010-8-8 11:16
标题: 单片机初学中遇到的问题
 unsigned char m,n;

  unsigned int s;

  m=64;

  n=71;

  s=m*n;       //s=64*71=4544,需要16位二进制数表示,高8位送P1口,低8位送P0

               //由于4544=17*256+192=H3*16*16*16+H2*16*16+H1*16+H0

                       //两边同除以256,可得17+192/256=H3*16+H2+H1*16+H0/256

                       //因此,高816进制数H3*16+H2必然等于17,即4544除以256的商

                       //816进制数H1*16+H0必然等于192,即4544除以256的余数

            

  P1=s/256;     //8位送P1口 ,P1=17=11H=0001 0001B, P1.0P1.4口灭,其余亮

  P0=s%256;     //8位送P0 , P3=192=c0H=1100 0000B,P3.1,P3.6,P3.7口灭,其余亮

 

红色字体这么说明是什么意思   加下划线的是什么意思以及其中的H3 H2 H1

 

谢谢


作者: aphar    时间: 2010-8-28 21:43

17*256表示将“17”左移8位,两字节(16位)的高字节的低4位(H3)左移12位(H3*16*16*16),低字节的高4位(H2)左移8位(H2*16*16)…………

 写到这里发觉自己都说不清了,不知道这个有什么意义?!!


作者: slycamel    时间: 2010-11-6 10:07
。。。只是说明一下算法呀,高8位的取整数,低8位的取余数,在二进制表示法里正好是两者之和
作者: 简单互动    时间: 2021-3-5 16:52
高8位的取整数,低8位的取余数




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1