进制

二进制:0b
八进制:0
十进制
十六进制:0x

二进制和十进制的转换:

十进制的整数部分和小数部分转化成二进制的方法不一样,十进制整数转二进制使用的是「除 2 取余法」,十进制小数使用的是「乘 2 取整法」。

示例:

十进制 8.625 转化为二进制就是 1000.101,即 2^3 + 2^-1 + 2^-3 = 8+0.5+0.125。

二进制小数不能表示所有的小数,只能表达2 除尽的数字。比如 1/2=0.1,1/4=0.01,3/4=0.11,1/8=0.001;而像0.1,0.2,0.3这种小数,就不能用二进制完整表示(就像十进制无法精确表示1/3,1/7一样),所以使用二进制的计算机碰上这种小数,只能尽其所能表示,也就出现了精度问题。

二进制转换为十进制
二进制转为十进制要从右到左用二进制的每个数去乘以2的相应次方,小数点后则是从左往右。
如果首位是0就表示正整数,如果首位是1则表示负整数,正整数可以直接换算,负整数则需要先取反再换算。
因为计算机内部表示数的字节单位是定长的。如8位、16位、32位。所以位数不够时,高位补零。

示例:
二进制00101010转为十进制:
因为以0开头,所以这是正整数:
(0 * 2的零次方) + (1* 2的一次方)+ (0 * 2 的二次方)+(1 * 2的三次方) +(0 * 2的四次方) +(1* 2的五次方) + (0 * 2的六次方) + (0 * 2的7次方) = 0 + 2 + 0 + 8 + 0 + 32 + 0 + 0 = 42

11101011转为负的十进制:
因为最高位是1,所以先减一,11101010,取反 00010101,然后计算出00010101对应的十进制为21,所以11101011最终对应的十进制为 -21。

posted on 2024-02-13 20:25  多巴胺不多  阅读(11)  评论(0编辑  收藏  举报