1359:二进制原码
难度: 倔强青铜 时间限制: 1000MS 空间限制: 64MB 提交数: 91 通过数: 35题目内容
题目描述:
原码(true form)是一种计算机中对数字的二进制定点表示方法。
原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(因此0的原码有两种表示:+0和-0,分别是00000000和10000000),其余位表示数值的大小。
例如,我们用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011
现在,假设我们采用8位二进制来表示原码,根据输入的整数n,输出其对应的原码表示
注意,由于0的二进制原码有两种表示形式,所以我们只要求输出"正0",即00000000即可.
输入描述:
多组输入,每组输入一个整数n,占一行,-127<=n<=127
输出描述:
输出n的8位二进制原码表示
样例输入:
127
-1
样例输出:
01111111
10000001
#include <stdio.h> int main() { int n; while (scanf("%d", &n) != EOF) { int j = 7, a[8] = {0}; //a数组用来表示原码 if (n < 0) { //负数时 首位为1 a[0] = 1; n = -n; } while (n != 0) { //从第八位开始计算 a[j--] = n % 2; n = n / 2; } for (int i = 0; i <= 7; i++) //输出 printf("%d", a[i]); printf("\n"); } return 0; }