关于 无符号数 跟 有符号负数 在内存中的区别

关于 无符号数 和 有符号负数 在内存中的区别?
比如 无符号的255 和有符号的 -1
在内存都是 1111 1111 表示吧

那计算机在读取这段内存的时候是根据什么来决定
要读成255 还是 -1 的呢

悲催的问题,狠简单的问题
可是真不懂啊

------解决方案--------------------
比如 无符号的255 和有符号的 -1
在内存都是 1111 1111 表示吧



那计算机在读取这段内存的时候是根据什么来决定
要读成255 还是 -1 的呢

读成:1111 1111

悲催的问题,狠简单的问题
可是真不懂啊

内存就是内存, -1 和255 存在1字节里都是1111 1111, 问题是怎么解释它, 也就是char还是unsigned char的问题。
------解决方案--------------------
根据指令来决定的
处理有符号和无符号数的指令是不一样的
------解决方案--------------------
举个最简单的例子
C/C++ code
signed char a = -1;
unsigned char b = (unsigned char)-1;
int va = (int)a;
int vb = (int)b;
printf("va = %d, vb = %d\n",va,vb);

------解决方案--------------------
探讨
引用:
那计算机在读取这段内存的时候是根据什么来决定
要读成255 还是 -1 的呢

读成:1111 1111

悲催的问题,狠简单的问题
可是真不懂啊

内存就是内存, -1 和255 存在1字节里都是1111 1111, 问题是怎么解释它, 也就是char还是unsigned char……


那解释是在哪一步处理的呢
我们定义的char 、un……

------解决方案--------------------
探讨

引用:
那计算机在读取这段内存的时候是根据什么来决定
要读成255 还是 -1 的呢

读成:1111 1111

悲催的问题,狠简单的问题
可是真不懂啊

内存就是内存, -1 和255 存在1字节里都是1111 1111, 问题是怎么解释它, 也就是char还是unsigned char……


那解释是在哪一步处理的呢
我们定义的char 、……

------解决方案--------------------
根据程序指令来决定读取内存中的数据方式。
------解决方案--------------------
在内存中没有什么区别,关键是你站在无符号数的角度,还是有符号数的角度去看问题。

同一个东西,你站在不同的角度,看到的东西就是不一样的。