负整数-4如何转换为无符号数?

来源:百度知道 编辑:UC知道 时间:2024/05/14 01:19:40
如题,转换为unsigned形式
请告诉我具体的转换过程...
单纯的考试题,整型数(int) -4转换为无符号短整型数(unsigned short)是多少?
请详细说出笔算的过程,而不要给我程序代码~~~~

不知你在说什么.希望下面的代码能帮你理解一下......

#include<stdio.h>

void main(){

unsigned u = -4;
unsigned short us = -4;
int i = u;
printf("%d,%u\n",i,i);

i = us;
printf("%d,%u",i,i);

}

内存中不需要转换

-4(16位有符号整数) = 0xFFFC(16位系统) = 65532(16位无符号整数)

负数用补码表示
正数用原码表示

你是要内存中数据不变改显示值,还是要显示值不变改内存数据阿?
负数在内存中使用补码存储的,有什么疑问吗?

用绝对值的函数就可以了吧。
例如:
#include<stdio.h>
#include<math.h>
void main()
{
int i=-4;
if(i<0)
i=abs(i);
}