什么叫八进制数补码?什么叫十六进制数补码?

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:32:11
如题: 什么叫“八进制数补码”?什么叫“十六进制数补码”?这两个概念是谭浩强编著的那本《C程序设计(第二版)》第三章习题3.2的题目中提到的,如下:
3.2 请将下面各数用八进制和十六进制数补码表示:
(1)10 (2)32 (3)75 (4)-617
(5)-111 (6)2483 (7)-28654 (8)21003

什么叫“八进制数补码”?什么叫“十六进制数补码”?

八进制就是逢八进一。十六进制就是逢16进一。

补码,是一种编码方式,基本的规则是
正数:取原码。
负数:原码的反码加1.

题目是叫你计算出这些数的补码,然后分别用八进制书写和用十六进制书写.

正数的补码不变,就是它自己。
负数的补码:不考虑符号, 算出反码,再 加1.

补码的位数与机器字长有关.

#include<stdio.h>
#include<stdlib.h>
void main(void)
{
int x[8] = {10,32,75,-617,-111,2483,-28654,21003};
int i;

for (i=0;i<8;i++){
printf("%d ", x[i] );
if (x[i] < 0) {x[i] = 0xffff + x[i] + 1;};
printf("-- 0x%04x %o\n", x[i] ,x[i] ); //16进制和8进制补码
}
}

我们一般所说的补码都是一些二进制数据,所谓的八或十六进制啊!就是把相应的二进制补码转换成八或十六进制!