发布于 2015-07-09 08:46:20
3楼
你不应该用移位比如mb0初始值=2#1,此时输出第一个位为1,那么移位一次后mb0=2#10,此时第一个位就为0,第二个位为1了。如果要保持你的整个移位过程你应该用移位后的结果求和,即mb1=mb1+SHL(mb0),输出mb1的值就行了。
第一次mb0=2#1,mb1=2#1;
第二次mb0=2#10,mb1=2#11;
第三次mb0=2#100,mb1=2#111;
第四次mb0=2#1000,mb1=2#1111;
第五次mb0=2#10000,mb1=2#11111;
第六次mb0=2#100000,mb1=2#111111;
第七次mb0=2#1000000,mb1=2#1111111;
第八次mb0=2#10000000,mb1=2#1111111;
需要复位的时候直接给mb0和mb1赋值0就行了。
活到老,学到老!为了生活学习吧!