RTJNI 代码:#include <android/log.h>
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "zc", __VA_ARGS__))
{
char c = -2;
long l = c;
LOGI("c : %d , l : %d ==> (%ld , %ld) --> (%d)", c, l, c, l, sizeof(char));
}
输出来的结果是:c : 254 , l : 254 ==> (254 , 254) --> (1)
问题:
为何 l 的输出结果不是 -2 ??? char 转 int 不是有符号扩展 ?变成 无符号扩展了??
怎样才能实现 char 到 int 的有符号扩展 ??求指教~~ 感谢 。ps : 程序里的错误结果查半天,头都查疼了,才查到,居然这里有这样结果... 郁闷...
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "zc", __VA_ARGS__))
{
char c = -2;
long l = c;
LOGI("c : %d , l : %d ==> (%ld , %ld) --> (%d)", c, l, c, l, sizeof(char));
}
输出来的结果是:c : 254 , l : 254 ==> (254 , 254) --> (1)
问题:
为何 l 的输出结果不是 -2 ??? char 转 int 不是有符号扩展 ?变成 无符号扩展了??
怎样才能实现 char 到 int 的有符号扩展 ??求指教~~ 感谢 。ps : 程序里的错误结果查半天,头都查疼了,才查到,居然这里有这样结果... 郁闷...
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货