大连市住房和建设局网站,什么网站可以用手机做兼职赚钱吗,电子商务网站运营,重庆的网站建设公司计算机底层存储数据时#xff0c;存储的是数据对应的二进制数字。对于整型数据#xff0c;其二进制表示形式有三种#xff0c;分别是#xff1a;原码、反码、补码#xff0c;而实际存储的是整型数据的补码。
原码、反码以及补码都是有符号的#xff0c;其中最高位存放符…计算机底层存储数据时存储的是数据对应的二进制数字。对于整型数据其二进制表示形式有三种分别是原码、反码、补码而实际存储的是整型数据的补码。
原码、反码以及补码都是有符号的其中最高位存放符号位0 表示正数1 则表示负数。
1. 原码
最高位表示正负其余位表示数值。例如十进制的正负 1用 8 位二进制的原码表示 1 [0000 0001]原-1 [1000 0001]原 2 .反码
正数的反码和原码相同负数的反码是在原码的基础上符号位不变其余位按位取反。 1 [0000 0001]反-1 [1111 1110]反 3. 补码
正数的补码和原码也相同负数的补码是在反码的基础上加 1。 1 [0000 0001]补-1 [1111 1111]补 有符号整数转换
有符号负整数 十进制转二进制求-5的补码过程如下-5对应正数500000101→所有位取反11111010→加1(11111011)所以-5的补码是11111011。数0的补码表示是唯一的。 二进制转十进制给定一个有符号二进制数11111011先减去1等于11111010再取反10000101得到的十进制数为-5 有符号正整数 十进制5对应的二进制为0000 0101 这不会有任何的变化 校验时当成无符号数读取数据时转换成有符号数程序中先定义u16再转换s16
u16 IMU16800_DATA[10];
checksum (( IMU16800_DATA[i] 8) ( IMU16800_DATA[i] 0x00ff )); pAdis16800-gx -(double)((s16)IMU16800_DATA[1])手册说了校验就是无符号数但是数据实际的意义是有符号的 In these cases, use the following formula to verify the 16-bit checksum value, treating each byte in the formula as an independent, unsigned 8-bit number: