非十进制如何转化成十进制 VC 中,非运算(~10)结果为0101,为什么转换为十进制是-11?怎样识别二进制中的正负?

[更新]
·
·
分类:行业
4045 阅读

VC

VC 中,非运算(~10)结果为0101,为什么转换为十进制是-11?怎样识别二进制中的正负?

中,非运算(~10)结果为0101,为什么转换为十进制是-11?怎样识别二进制中的正负?

在现在的主流32位系统里,一般一个整型int是4个字节32位,在符号整数时,最高位表示符号,0为正,1为负。并且在计算机中正负数都是用其补码表示的。10的二进制是00000000 00000000 00000000 00001010非运算各位取反得11111111 111111111 11111111 11110101,这个实际上就是-11的补码。-11的原码:10000000 00000000 00000000 00001011-11的反码(原码基础上,符号位不变,其余各位取反):11111111 11111111 11111111 11110100-11的补码(反码基础上加1):11111111 11111111 11111111 11110101比较一下:可知对10非运算的结果就是-11的补码,所以转换成十进制是-11

简述十进制数转换成非十进制数的方法?

1.将十进制数(29)转换成二进制数。
把给定的十进制数29除以2,商为14,所得的余数1是二进制数的最低位的数码,再将14除以2,商为7,余数为0。再将7除以2,商为3,余数为1,再将3除以2,商为1,余数为1,再将1除以2,商为0,余数为1是二进制数的最高位的数码。具体过程如下:
其结果为:11101
2.将二进制数(1010011)转换到八进制数。
首先,将给定的二进制数从低位到高位一次每3位划分为1组,然后将每组用其对应八进制数的数码表示,结果就是转换成的八进制数。具体过程如下。(字丑勿喷)
结果是(123)
八进制
将八进制(745)转换成二进制数。
将(745)的每一位用3位二进制数表示,具体过程如下:
结果是:(111100101)二进制。
3.将二进制数与十六进制数之间的相互相转换:
将二进制数转换为等值的十六进制数称为二-十六进制转换,采用的方法是“四位一组法”,因为四位二进制数恰好有16个状态,分别对应十六制数的16个数码。“四位一组法”就是从低位到高位依次将每4位二进制数划分为1组,高位不足4位的前面加0补足4位,然后将每1组用对应的十六进制数的数码表示,就得到相应的十六进制数。
将十六进制数转换为等值的二进制数称为十六-二进制转换。其转换方法刚好和二转十六相反,只要将十六进制数的每1位分别用4位二进制数表示即可。
将二进制数(1010011)转换成十六进制数。
首先,将给定的二进制数从低位到高位一次每4位划分为1组,然后将每组用其对应的十六进制数的数码表示,结果就是转换的十六进制数。具体过程如下。
结果等于(53)十六进制数。
4.将十六进制数(6AD转换成二进制数)
将(6AD)的每一位用4位二进制数表示。
结果是:(11010101101)二进制数。