C语言自制os的时候,512 <= 900 <= 767?!

眼力好的朋友看出来我在学习<30天自制操作系统>

我打算自己照着源码写而不是照抄.可是出现了问题

L105 用来往图层上输出,都测试过,很正常

L103 是限定了i的范围512~767,其中 int i;

L103 和 L104 构成矛盾?!事实上qemu和vmware都打印了结果,那就说明i在没改变的情况下,既==900

又满足 512 <= i <= 767?!

说不过去,望指教

<=是一种运算,如果512小于等于i,则值为1,否则为0.

(512<=900)等于1,1自然小于767

这里应该写else if(512<=i&&i<=767)

顺便提一句,我试着把"i==900"这个条件在整个if控制流里提前了,然后很明显正常,具体原因是真的不晓得啊...(写c的时候总有些奇奇怪怪的情况,比如调用golang的dll,输出顺序也怪的一批,就好比

printf("%s", s"); //C语言的函数

Print("a"); //go的函数

就会先显示a,在显示b,折腾了好几天了...)