【发布时间】:2018-06-06 12:51:02
【问题描述】:
我想测试输入变量的值是否通过了一个字节大小或知道所以我写了这段代码
{
uint8_t x;
cout << " enter x" << endl;
cin >> hex >> x;
cout << hex << x;
uint8_t y ;
y = x >> 4 ;
cout << hex << y;
if ( y == 0 )
{
cout << " succes, coorect value for x";
}
if (y > 0)
{
/*here i supoosed that x = 0xfff and when shifting, y would be 0xff but y is uint8 so it's just for compare
std::cout << "fail, ";
}
return 0;
}
我想知道如何测试用户是否在 uint8 中输入了两个或更多字节。 并告诉他重新输入一个字节的值。这就是我尝试将 uint8_t 与 uint16_t 进行比较的原因。
【问题讨论】:
-
鉴于
y是一个无符号值,你能不能explain to your rubber ducky可能永远小于0? -
if ( y < 0 )这永远不会是真的。y是一个无符号整数。 -
GCC warns 顺便说一下。
-
一个问题是
uint8_t可能是unsigned char和istream有一个operator>>将其读取为字符而不是数字。