关于十进制数字 转换为二进制存储在电脑里

作者&投稿:狄逄 (若有异议请与网页底部的电邮联系)
c语言问题:输入一个十进制数,将其转化为二进制数后存放在数组中并输出~

#include
#define uint unsigned int
#define ushort unsigned short
//求2的N次方
int cifang(int n)
{
int i=0,sum=1;
for(i=n;i>0;i--)
{
sum*=2;
}
return sum;
}
//十进制正数转换成二进制数
uint transform_data_zhengshu(uint frequence,ushort*pwm_table)
{
uint temp=frequence;
int pwm_index=0;
while(temp)
{
pwm_table[pwm_index]=(temp&0x01);
temp=temp>>1;
pwm_index++;
}
return pwm_index-1;
}
uint transform_data(int frequence,ushort*pwm_table)
{
int temp=frequence;
int pwm_index=0;
ushort pwm_temp[15]={0};
//负数
if(frequence<0)
{
//先将负数转换成正数
temp=-frequence;
//求出这个正数temp的二进制并存放在pwm_temp中
transform_data_zhengshu(temp,pwm_temp);
//将这个正数temp的二进制pwm_temp取反并转换成十进制数sum
int sum=0;
int i=0;
for(i=0;i<15;i++)
{
if(pwm_temp==0)
pwm_temp=1;
else
pwm_temp=0;
sum+=cifang(i)*pwm_temp;
pwm_temp=0;
}
//将转换出来的十进制数sum加一
sum+=1;
//printf("sum=%d
",sum);
//最后再转成二进制pwm_table
return transform_data_zhengshu(sum,pwm_table);
}
//正数
return transform_data_zhengshu(frequence,pwm_table);
}
int main(){
int frequence=-2;
//scanf("%d",&frequence);
ushort pwm_table[15]={0};
uint off_set;
off_set=transform_data(frequence,pwm_table);
int i=0;
for(i=off_set;i>=0;i--)
{
printf("%d",pwm_table);
}
return 0;
}

扩展资料:①printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。
格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。
要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。
简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。
②printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。
printf()函数的调用格式为:printf("",)。
其中格式化字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。
格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。
如“%d”表示按十进制整型输出,“%ld”表示按十进制长整型输出,“%C”表示按字符型输出等。

转成二进制主要有以下几种:正整数转二进制,负整数转二进制,小数转二进制;
二进制转换为十进制将每个二进制数按权展开后求和即可。请看例题:把二进制数(101.101)2=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=(5.625)10


拓展资料二进制是计算技术中广泛采用的一种数制。
二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。
当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用“开”来表示1,“关”来表示0。
20世纪被称作第三次科技革命的重要标志之一的计算机的发明与应用,因为数字计算机只能识别和处理由‘0’.‘1’符号串组成的代码。其运算模式正是二进制。
19世纪爱尔兰逻辑学家乔治布尔对逻辑命题的思考过程转化为对符号"0''.''1''的某种代数演算,二进制是逢2进位的进位制。0、1是基本算符。因为它只使用0、1两个数字符号,非常简单方便,易于用电子方式实现。
参考资料:百度百科-二进制转换

你现在应该不是学编程 应该是学子网掩码划分吧..
子网掩码其实就是32个2进制组成.分4段.每小段就8位
7位变8位就是 不足8位补0
子网掩码最大是255 划分子网掩码的时候2进制不会到9位的

我也是刚学习.
十进制整数转二进制:

就是把该十进制数,用二因式分解,取余。
以12为例,转为二进制
2除以12得6,余0,取0
2除以6得3,余0,取0
2除以3得1,余1,取1
最后剩下1,由它开始写起,就可得1100的二进制结果

十进制中的小数转为二进制:,
就是把该小数不断乘2,再取所得的整数部份,直至没有小数为止,但请注意并不是所有小数都能转到!
以0.875为例,
0.875剩以2得1.750,取整数1
0.750剩以2得1.500,取整数1
0.500剩以2得1,取整数1,就可得0.111的二进制结果
1

我的问题是 -122.875 是什么样子的, 据我了解
-122.875
转 成 二 进 制
- 0000 0000 0000 0001 1101 1111 1111 1011

正数的补码在加1


牙克石市17199488142: 编写程序,输入一个十进制整数,将其变换为二进制后储存在一个字符数组中. -
鄢沿解热: #include int main() { int num; char ch[100]; scanf("%d",&num); itoa(num,ch,2); printf("%s\n",ch); return 0; }

牙克石市17199488142: 计算机如何储存信息? 比如十进制数1,换成2进制后如何储存 -
鄢沿解热: 依旧是用1来存储的 二进制下只能用0和1来保存数据例如,十进制数字7,二进制下就是111(2的零次方+2的一次方+2的二次方)

牙克石市17199488142: 怎么把十进制数转换为二进制
鄢沿解热: 十进制转成二进制是这样: 把这个十进制数做二的整除运算,并将所得到的余数倒过来. 例如将十进制的10转为二进制是这样: (1) 10/2,商5余0; (2) 5/2,商2余1; (3)2/2,商1余0; (4)1/2,商0余1. (5)将所得的余数侄倒过来,就是1010,所以...

牙克石市17199488142: [例2] 将十进制数数20.59375转换成32位浮点数的二进制格式来存储.[解:] 首先分别将整数和分数部分转换成二进制数:20.59375=10100.10011然后移动小... -
鄢沿解热:[答案] 整数部分20D=10100B这个很简单,将20除2取倒序列就可以了或者是分解法 20=2^4 0*2^3 2^2 0*2^1 0*2^0=10100B 小数部分是乘2取整数 0.59375*2=1.1875 1 0.1875*2=0.375 0 0.375*2=0.75 0 0.75*2=1.5 1 0.5*2=1 1 所以0.59375=0.10011 所以 ...

牙克石市17199488142: 怎么把10进制数转换为2进制数 -
鄢沿解热: 一、二进制与八进制之间的转换 1、二进制转八进制 将二进制数以小数点为基点向左右两边每3位长度分节,将每节的二进制转为八进制,再顺序组合起来. 2、八进制转二进制 将八进制的每一位扩展为等价的3位二进制数,再顺序组合起来即可...

牙克石市17199488142: 如何从十进制转换为等值二进制? -
鄢沿解热: 进制概念1. 十进制十进制使用十个数字(0、1、2、3、4、5、6、7、8、9)记数,基数为10,逢十进一.历史上第一台电子数字计算机ENIAC是一台十进制机器,其数字以十进制表示,并以十进制形式运算.设计十进制机器比设计二进制...

牙克石市17199488142: c语言问题:输入一个十进制数,将其转化为二进制数后存放在数组中并输出 -
鄢沿解热: #include <stdio.h> void fun(int n) { int s[32],i = 0; while(n) { s[i++] = n % 2; n /= 2; } for(i = i-1; i >= 0; i--) { printf("%d",s[i]); } printf("\n"); } int main() { int n; scanf("%d",&n); fun(n); }

牙克石市17199488142: 求怎样将一个十进制数转换为二进制数 -
鄢沿解热: 1 这里我们以十进制数201为例,先用201除以2等于100余1,我们把1提取出来. 2 用上一次除得的100除以2等于50余0,我们把0提取出来,如图所示. 3 用同样的方法继续往下除,并把余数提取出来,如图所示. 4 现在我们可以看到余数依次...

牙克石市17199488142: C语言编程: 编制一程序实现将十进制数转换成二进制数,并存放于一维数组b中,然后输出.
鄢沿解热:#include<stdio.h> void main() { int i,j,n,b[32]; printf("输入一整数:"); scanf("%d",&n); i=0; while(n!=0) { b[i] = n%2; n /= 2; i++; } for(j=i-1; j>=0; j--) { printf("%d",b[j]); } printf("\n"); }

牙克石市17199488142: c语言编程如何实现 - 十进制数转换成二进制和输出
鄢沿解热: #include void divideData(const float number, int &integer, float &decimal); //分离出整数和小数部分. void printBinaryForInteger(int &integer); //打印整数部分的二进制形...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网