用C语言操作WORD的循环

时间:2015-10-04 19:27:32

标签: c windows loops motorola

我试图在C中写下一个应该操纵一个双语的WORD的算法。

我们说我们有这样的词:

WORD testStart = 0x000;

现在我需要增加值以达到0xFFF。但我需要将最后一个字节从00增加到FF,并将第一个半字节从0增加到F.

有没有办法实现这个结果?

我在C方面不是很熟练,而且我注意到按照整数我可以使用" ++"运营商,但如果我这样做:

test+=125;

它没有正常工作......

重新盖上:

WORD testStart,testEnd;

testStart = 0x000;
testEnd = 0xFFF;

while(1){
             if(testStart < testEnd ){ 
                     if(testStart%25==0)
                     testStart+=0x7D; //If byte is multiple of 25 I want to add 1 to the nibble value 
                     else
                     testStart++;  //else just add 1 to byte
             }

}

谢谢!

2 个答案:

答案 0 :(得分:1)

你可以把那个WORD分成两个变量,让我们说:

WORD z;
z = x + (y << 8);

然后通过编写

来构造结果
WORD testStart, testEnd, byte, nibble; //replace with names of your liking

testEnd = 0xFFF;
byte = 0x00;
nibble = 0x0;


while(1){
             testStart = byte + (nibble << 8);
             if(testStart < testEnd )
             { 
                     if(byte == 0xFF)
                     {
                       nibble++;
                     }
                     else //byte is not 0xFF
                     {
                       byte++;
                     } 
             }

}

如果我理解正确,你正在寻找:

<tr>

答案 1 :(得分:0)

您应该能够执行以下操作:

WORD x = 0xFF;
WORD y = 0xF;