当前位置:首页 » 编程语言 » c语言int二进制

c语言int二进制

发布时间: 2023-03-15 21:09:22

c语言如何输入一个数值(int,float,double,char,long),以二进制的形式输出

#include<stdio.h>
voidprt(char*p)
{inti;
for(i=7;i>=0;i--)
printf("%d",(*p&(1<<i))>0);
}
intmain()
{charc=122;
inti=123,j;
longa=124;
longlongb=125;
floatx=19.375;
doubley=19.375;
char*p;
p=&c;printf("c=");prt(p);printf(" ");
p=(char*)&i;printf("i=");
for(j=sizeof(i)-1;j>=0;j--)prt(p+j);printf(" ");
p=(char*)&a;printf("a=");
for(j=sizeof(a)-1;j>=0;j--)prt(p+j);printf(" ");
p=(char*)&b;printf("b=");
for(j=sizeof(b)-1;j>=0;j--)prt(p+j);printf(" ");
p=(char*)&x;printf("x=");
for(j=sizeof(x)-1;j>=0;j--)prt(p+j);printf(" ");
p=(char*)&y;printf("y=");
for(j=sizeof(y)-1;j>=0;j--)prt(p+j);printf(" ");
return0;
}

Ⅱ 怎么在C语言里面输入二进制数字

c语言不能直接表示二进制,没有数字前缀表示。
例子如下:
假设有一个
int
类型的数,值为5,那么,我们知道它在计算机中表示为:
00000000
00000000
00000000
00000101
5转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。
(2)c语言int二进制扩展阅读
进制是一种计数的方式,常用的有二进制、八进制、十进制、十六进制。任何数据在计算机内存中都是以二进制的形式存放的。
我对进制的个人理解,二进制数是以2为计算单元,满2进1位的数;八进制数是以8为计算单元,满8进1位的数。
对于任何一个数字,我们都可以用不同的进制来表示,比如,十进制数12,用二进制表示为1100,用八进制表示为14,用十六进制表示为0xc。

Ⅲ C语言怎么定义一个二进制数

C语言中没有 “二进制数”这种类型,所以没办法直接定义;但可以直接定义16进制数。

例:

int main(){

int a;

scanf("%p",&a);//16进制数输入%p是输入一个十六进制的数scanf("%llx",&a);也可以输入十六进制并且比较正规

printf("%d",a);//十进制输出%d是输出一个十进制的数

printf("0x%x",a);//16进制输出printf("%llX ",a);也可输出一个十六进制数如果红色部分大写X则输出十六进制为大写字母否则小写x输出为小写字母

}

(3)c语言int二进制扩展阅读

C语言中定义整型数据的十六进制数:

unsigned int hex_val = 0x123;

//定义了一个整型变量并赋以初始值为一个十六进制常量。

if (scanf("%x", &hex_val) != EOF)

{

printf("它的八、十进制分别=%o、%d ", hex_val, hex_val);

}

Ⅳ 【急求】c语言程序输入一个整数(int),要求输出其二进制形式的值。

我也发一个伏禅脊自编缺渗的,已验证通过。

#include <stdio.h>

main()
{
char binOut[17];
short int i, j; /袭祥* 16bit的整数,要用short int型 */
scanf("%d", &i);

for(j=15;j>=0;j--)
{
if(i&(1<<j))
binOut[15-j] = '1';
else
binOut[15-j] = '0';
}
binOut[16] = 0;
printf("DEC(%d)=BIN(%s)\n",i,binOut);
}

Ⅳ C语言中有符号类型的int范围应该怎么求负数用二进制怎么表示

恩!首先要指出你的一个错误!int的范围不是(-128----127)这个是char的范围,

范围的大小是由类型所占有的字节来决定的。如此所示:char是一个字节8bit,那么在二进制中,8bit最大值是弯姿255,最小值是0(在是在无符号时)如果是有符号的话.那么就还有一位是符号为,最高位是符号为。例如:1111 1111:如果是有符号的char数据那么这个数的-1;最高友弊是符号位,如果是1,就是负数,如果是0是正数。
0111 1111 就是+127;
那么1111 1111 怎么理解是-1嗯埋告绝!在数电中提到,对于一个负数要用它的反码来表示。
如:1111 1111 的反码是1000 0001.怎么的来呢!?
首先,我们要得到-1的值,那么第一步是的好1000 0001,最高位1是符号位,最后一个1是数值位。但是在机器中我们要用反码来表示此值。那么就要求他的反码。反码的求法是符号位不变。数值位取反加一。

取反后是结果是:1111 1110

再加一的结果是:1111 1111

如果是1,那么1 的8位表示是0000 0001
解释的很少!你可以自己看看,如果不懂可以在聊!

Ⅵ c语言中比如int等等这一类,变为2进制有几位

和是否变为二进制无关。
所谓二进制 十备袜进制 8进制 16进制
都只是仿洞激给人看的。
在计算机,或者编译器中,都只有二进制。

各种类型 在不同位的系统上 有不同表现
比如int 在16位机上为16位, 其它为32位
char 不管哪里都是8位
long 在64位上为64位,其它为32位。颤桥
float都是32位。

这个没什么好方法,只有记住。

Ⅶ C语言int范围内 最小值的二进制表示

1后面加31个零 ,int的取值范围是 负的2的32次方到正的2的32次方减一

Ⅷ C语言中怎么输出数据的二进制

二进制数不能像十进制那样%d直接输出。

如果想输出一个数的二进制可以通过函数把其转成2进制字符串再将其输出。

itoa函数

原型:char*itoa(intvalue,char*string,intradix);

参数:int value 被转换的整数,char *string 转换后储存的字符数组,int radix 转换进制数,如2,8,10,16 进制等

功能:将任意类型的数字转换为字符串。在<stdlib.h>中与之有相反功能的函数是atoi。

参考代码:

1、

#include<stdlib.h>
#include<stdio.h>
intmain(void)
{
intnumber=10;
charstring[25];
itoa(number,string,2);
printf("十进制数:%d,二进制数:%s ",number,string);
return0;
}
/*
十进制数:10,二进制数:1010
*/

2、

voidprint_bin(intn)
{
intl=sizeof(n)*8;//总位数。
inti;
if(i==0)
{
printf("0");
return;
}
for(i=l-1;i>=0;i--)//略去高位0.
{
if(n&(1<<i))break;
}

for(;i>=0;i--)
printf("%d",(n&(1<<i))!=0);
}

Ⅸ C语言中有直接把一个int类型的整数化成二进制数的办法吗 必须要自己写代码来转换吗

因为C没有提供二进制输入、输出的功能,所以也会有这种数字转换的现碧和察成办法,都悔茄得自己写。但写起来可以用一些库函数来完成——

#include棚模"stdio.h"
#include<stdlib.h>
intmain(intargv,char*argc[]){
intx=123456789;
charb[33];
itoa(x,b,2);//调用itoa把x转换成二进制字符串
printf("%d(10)=%s(2) ",x,b);
return0;
}

运行样例:

热点内容
动态规划01背包算法 发布:2024-11-05 22:17:40 浏览:849
nasm编译器如何安装 发布:2024-11-05 22:01:13 浏览:180
登录密码在微信的哪里 发布:2024-11-05 22:00:29 浏览:739
c防止反编译工具 发布:2024-11-05 21:56:14 浏览:247
安卓虚拟机怎么用 发布:2024-11-05 21:52:48 浏览:343
php时间搜索 发布:2024-11-05 20:58:36 浏览:478
燕山大学编译原理期末考试题 发布:2024-11-05 20:13:54 浏览:527
华为电脑出现临时服务器 发布:2024-11-05 20:05:08 浏览:408
斗战神免费挖矿脚本 发布:2024-11-05 19:53:25 浏览:665
网吧服务器分别是什么 发布:2024-11-05 19:45:32 浏览:392