【发布时间】:2015-10-22 07:38:40
【问题描述】:
我想将带有 0 和 1 的字符串转换为有符号的短字符串。这项工作,但负数我有错误的价值。我认为,问题是从无符号转换为有符号。如何解决? 例子: 971 是 971, 425 是 425 , -122 是 3974 , -394 是 3702 , -2032 是 2064
bitset<12> b(binary);//binary is string of 0 and 1
cout<<(signed short)b.to_ulong()<<"\n";
【问题讨论】:
-
负值是什么意思?
-
@Amit 当我得到不同的数字时,我举了一个例子。我明白了,当我转换负数时会发生变化。
-
我不明白你的评论。显示你的代码没有达到你的预期。
-
122 + 3974 = 4096, 394 + 3702 = 4096, 2032 + 2064 = 4096,所以我假设你想要 16 位的 2 补码是正确的?