C++ 将十六进制数强制转换为有符号整数
我一直在尝试将十六进制数转换为有符号整数。但它不能识别负数 这里有一个例子。我是否需要单独签名而不是铸造C++ 将十六进制数强制转换为有符号整数,c++,typecasting-operator,C++,Typecasting Operator,我一直在尝试将十六进制数转换为有符号整数。但它不能识别负数 这里有一个例子。我是否需要单独签名而不是铸造 #include <iostream> using namespace std; int main() { cout<<"Hello World"; int64_t input = static_cast<int64_t>(0xf8546); cout << "Input: &
#include <iostream>
using namespace std;
int main()
{
cout<<"Hello World";
int64_t input = static_cast<int64_t>(0xf8546);
cout << "Input: " << input << endl;
return 0;
}
#包括
使用名称空间std;
int main()
{
CUT< P> C++中没有负文本,<代码> 0xF8566 < /代码>是正的。它的类型取决于平台。< /P>
如果你想要一个负的十六进制数,那么写
-0xf8546
这包括应用于文字0xf8546
的一元求反运算符,就像-1
是文字1
的一元求反一样,您的代码中没有负数。为什么您认为0xf8546
是负的64位数字?它是从1开始的?0x1
也是星形的用一个1-你认为它是负数吗?0xf8546
相当于0x00000000000f8546