10进制数转16位2进制补码
来源:互联网 发布:饥荒 知乎 编辑:程序博客网 时间:2024/06/08 17:04
有bug:负数,结果计算错误
//
// main.c
// 10进制转2进制
//
// Created by LongMa on 15/8/7.
// Copyright (c) 2015年 itcast. All rights reserved.
//
#include <stdio.h>
int main(intargc,const char* argv[])
{
// insertcode here...
int num = 32;
int a[16];
for (int i =0; 2; i++)
{
if (0 == num )//不是 0 == num / 2,因为这样的话,num == 1时,就符合,并没有被保存!
{
for (int j =i ; j < 16 ; j++)//使得没被除的部分全为0
{
a[j] = 0;
}
break;
}else
{
a[i] = num % 2;
num /= 2;
}
}
//逆序输入 每4个 隔开显示
for (int j =15; j >= 0; j--)
{
printf("%d",a[j]);
if (j == 4 || j ==8 || j ==12 )
{
printf("\t");
}
}
return 0;
}
改进:
// main.c
// 10进制转2进制
#include <stdio.h>
#include "Jz10to2.h"
int main(intargc,const char* argv[])
{
// insertcode here...
int num = -32;
int a[16];
if( num >= 0)
{
Jz10to2(a,num);
/* 逆序输出 */
for (intj =15; j >= 0;j--)
{
printf("%d",a[j]);
if (j == 4 || j ==8 || j==12 )
{
printf("\t");
}
}
}else
{
Jz10to2(a,-num);
for (intj =15; j >= 0;j--)
{
if (0 == a[j ])//负数时,先调用函数计算正数的原码,再在这做判断,0变1,1变0即可
{
a[j ] = 1;
}else
{
a[j ] = 0;
}
printf("%d",a[j]);
if (j == 4 || j ==8 || j==12 )
{
printf("\t");
}
}
}
return 0;
}
//
// Jz10to2.c
#include "Jz10to2.h"
void Jz10to2(inta[16],intnum)
{
for (int i =0; 2;i++)
{
if (0 == num )//不是 0 == num / 2,因为这样的话,num == 1时,就符合,并没有被保存!
{
for (int j = i ; j <16 ; j++)//使得没被除的部分全为0
{
a[j] = 0;
}
break;
}else
{
a[i] = num % 2;
num /= 2;
}
}
//return *a;//返回数组的值时,要用 *a;改为void类型,没必要返回参数,因为传的是地址
}
//
// Jz10to2.h
#ifndef___50807____________Jz10to2__
#define___50807____________Jz10to2__
#include <stdio.h>
void Jz10to2(int a[16],int num);
#endif /* defined(___50807____________Jz10to2__) */
- 10进制数转16位2进制补码
- 16位2进制补码转换为10进制
- 16位之原码转补码
- 4-9-源码反码补码、进制转化、寄存器变量、动态库dll、位运算加减
- C语言基础(八)- 进制转化、计算机补码、位运算符
- 位运算-补码范围
- 补码与位运算
- 常见笔试题(2)----sizeof、位、补码
- 好的JAVA思路——利用补码运算和位运算的巧用来实现进制转化
- n进制补码,格雷码
- 补码和位运算(初学)
- 补码,反码和位运算
- 进制+补码+位运算+算法
- 进制与反码补码原码
- c++位运算符 | & ^ ~ && ||,补码,反码
- 补码非的位级表示
- 原码,补码,反码与位运算
- 10.补码+位运算符+NULL+链表
- 读写锁
- HDOJ1698 Just a Hook(线段树)
- Java序列化基础
- sed高级用法:模式空间(pattern space)和保持空间(hold space)
- 分治法求众数问题 (配图)
- 10进制数转16位2进制补码
- iOS应用内部切换语言,不跟随系统
- iOS 宏(define)与常量(const)的正确使用
- TCP三次握手及其背后的缺陷
- linux系统启动
- 2015 Multi-University Training Contest-5 MZL's xor
- akka 之 Dispatcher学习笔记
- linux系统忘root密码怎么办
- jQuery效果之滑动