在 C 中操作 WORD 的循环

A loop to manipulate a WORD in C

我正在尝试用 C 编写一个算法,该算法应该操纵一个 hipotical 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
             }

}

谢谢!

您应该能够做到以下几点:

WORD testStart,testEnd;

testStart = 0x000;
testEnd = 0xFFF;

while(testStart != testEnd) testStart++;

您可以将该 WORD 分成两个变量,比方说:

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

然后通过编写构造结果:

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++;
                     } 
             }

}