C++ 我可以缩短这个if语句吗?

C++ 我可以缩短这个if语句吗?,c++,C++,此if-语句当前将一个变量与一个静态数字进行比较,如果它们相等,则为settime7变量提供一个十六进制,用于将时间发送到一个单位 如果-语句: if(timeM == 0){ settime7 = 0x00; } else if(timeM == 1){ settime7 = 0x01; } else if(timeM == 2){ settime7 = 0x02; } else if(timeM == 3){ settime7 = 0x03; } // ...and

if
-语句当前将一个变量与一个静态数字进行比较,如果它们相等,则为
settime7
变量提供一个十六进制,用于将时间发送到一个单位

如果-语句:

if(timeM == 0){
   settime7 = 0x00;
}
else if(timeM == 1){
   settime7 = 0x01;
}
else if(timeM == 2){
   settime7 = 0x02;
}
else if(timeM == 3){
   settime7 = 0x03;
}
// ...and so on to timeM == 60 and settime = 0x3C.

如果我明白你的意思

...
else if(timeM == 60){
   settime7 = 0x60;
}
然后:

settime7 = (timeM / 10) * 16 + (timeM % 10)

如果我明白你的意思

...
else if(timeM == 60){
   settime7 = 0x60;
}
然后:

settime7 = (timeM / 10) * 16 + (timeM % 10)

只需分配变量:

settime7 = timeM;

对于存储的整数,您自己将整数写为十进制还是十六进制并不重要。

只需分配变量:

settime7 = timeM;


对于存储的整数,您自己将整数写为十进制还是十六进制并不重要。

settime7=timeM?不能这样做timeM是一个十进制我需要一个十六进制的settimeWell,这排序它一点点。。。。loelolA数字是一个数字是一个数字<代码>1
0x01
是相同的数字。您不存储十六进制或十进制,它们只是指定相同数字的不同方式。您不了解整数是如何工作的,没有十进制或十六进制的概念。只要号码。从十进制或十六进制分配的相同数字是相同的数字。有两个
int
settime7=timeM?不能这样做timeM是一个十进制我需要一个十六进制的settimeWell,这排序它一点点。。。。loelolA数字是一个数字是一个数字<代码>1
0x01
是相同的数字。您不存储十六进制或十进制,它们只是指定相同数字的不同方式。您不了解整数是如何工作的,没有十进制或十六进制的概念。只要号码。从十进制或十六进制分配的相同数字是相同的数字。有两个
int
@AsierAranbarri我只是想了解他的意思need@bruno你不应该“尝试”理解OP。如果问题不清楚,在评论中要求澄清,不要写“尝试”答案。这可能就是答案。假设OP曾经费心返回并解释
60
是否真的应该映射到
0x60
@Holt我不是机器人,我是人类,一切都不是黑色或白色,灰色是允许的:-)被选为优点。这是对60的有效解释。@asieranbari我只是想理解他的意思need@bruno你不应该“尝试”理解OP。如果问题不清楚,在评论中要求澄清,不要写“尝试”答案。这可能就是答案。假设OP曾经费心返回并解释
60
是否真的应该映射到
0x60
@Holt我不是机器人,我是人类,一切都不是黑色或白色,灰色是允许的:-)被选为优点。这是对60的有效解释。这非常有效,而不是60个不同if的if语句,它现在减少到1个句子。这非常有效,而不是60个不同if的if语句,它现在减少到1个句子