
int signExtension(int instr) { int value = (0x0000FFFF & instr); int mask = 0x00008000; int sign = (mask & instr) >> 15; if (sign == 1) value += 0xFFFF0000; return value;} 指令(instr)是32位,在里面我有一个16位的数字.
解决方法 尝试:int signExtension(int instr) { int value = (0x0000FFFF & instr); int mask = 0x00008000; if (mask & instr) { value += 0xFFFF0000; } return value;} 总结 以上是内存溢出为你收集整理的在C中将符号扩展名从16位扩展到32位全部内容,希望文章能够帮你解决在C中将符号扩展名从16位扩展到32位所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)