如何往内存存数据
无符号数a的8个bit全部用来表示数据[0,255],255在内存上存放ff
有符号数b的有个bit用来存放符号位[-128,127],存放的是-1的反码ff
原码反码补码,是针对有符号数来说的!!!!!!!!!!!!!!!!
无符号,8个bit都用来存放数据。

-1的反码为什么是ff?
|
原码 0正1负 |
反码 符号位不变 其他位取反 |
补码 反码+1 | |
|
127 |
0 111 1111 |
0 111 1111 |
0 111 1111 |
|
126 |
0 111 1110 |
0 111 1110 |
0 111 1110 |
|
125 |
0 111 1101 |
0 111 1101 |
0 111 1101 |
|
2 |
0 000 0010 |
0 000 0010 |
0 000 0010 |
|
1 |
0 000 0001 |
0 000 0001 |
0 000 0001 |
|
0 |
0 000 0000 |
0 000 0000 |
0 000 0000 |
|
-0 |
1 000 0000 |0| |
1 111 1111 |127| |
无 |
|
-1 |
1 000 0001 |1| |
1 111 1110 |126| |
1 111 1111 |127| |
|
-2 |
1 000 0010 |2| |
1 111 1101 |125| |
1 111 1110 |126| |
|
-125 |
1 111 1101 |125| |
1 000 0010 |2| |
1 111 1101 |125| |
|
-126 |
1 111 1110 |126| |
1 000 0001 |1| |
1 000 0010 |2| |
|
-127 |
1 111 1111 |127| |
1 000 0000 |0| |
1 000 0001 |1| |
|
-128 1 个字节下 没有原码和反码 |
1 000 0000 |0| | ||
如何从内存读数据
我们从内存看到一个字节的ff:
如果当成无符号数,读出255
如果当成有符号数,那要顺着表格逆向,反码是ff的是-1
从表格上可以看到:
反码,ff,当成有符号数是-1 ,无符号数是255
fe,当成有符号数是-2 ,无符号数是254
无符号和有符号之间的互相转换就是+-256

本文解释了如何在内存中存储无符号和有符号数,包括二进制表示、原码、反码和补码的概念,以及如何从内存读取数据并进行无符号和有符号之间的转换。
1万+

被折叠的 条评论
为什么被折叠?



