【Java面经整理】Java基础:一个十进制的数在内存中是怎么存的?
ps:Java面试题整理专栏,专门收集整理搬运面试题和答案
进制补码形式存储,最高位是符号位,正数的补码是它的原码,负数的补码是它的反码加1,在求反码时符号位不变,符号位为1,其他位取反。
整形数据在内存中是以2进制本数的补码存在的;但正整数的补码还是原来的2进制,而负数则要先取反再+1才是它的补码。
正数的原反补一样
负数的反码是将原码除了符号位的其余位取反,补码是给反码加1.
例:
原码: 1 0110100
反码: 1 1001011
补码: 1 1001100