C语言十进制转换二进制
·
正数十进制转换二进制的方法:
将该数字不断除以2直到商为零,然后将余数由下至上依次写出,即可得到该数字的二进制表示
以20转二进制为例:
#include <stdio.h>
void transfer(int x)
{
char buf[32];
int i=0;
/*循环除2,把余数存储在数组中*/
while( (x/2)!=0 )
{
buf[i] = x%2;
x = x/2;
i++;
}
buf[i] = x%2;
/*循环遍历数组,从后往前打印余数*/
for(int j=i; j>=0 ;j--)
{
printf("%d",buf[j]);
}
printf("\n");
}
int main(void)
{
int x;
while(1)
{
printf("请输入一个10进制数:");
scanf("%d",&x);
/*若输入的数小于0,退出循环,程序结束*/
if(x<0)
break;
printf("%d的二进制是:",x);
transfer(x);
printf("\n");
}
printf("退出程序\n");
return 0;
}
负数十进制转换二进制的方法:
换成二进制后(带符号位),取反,加1
以int型(4个字节)的-5为例子:
5 的原码: 00000000 00000000 00000000 00000101
-5 的原码:10000000 00000000 00000000 00000101
-5 的反码:11111111 11111111 11111111 11111010(符号位不变)
-5 的补码:11111111 11111111 11111111 11111010
+ 1
=11111111 11111111 11111111 11111011
因此,-5 二进制为:11111111 11111111 11111111 11111011
转换为十六进制为:0xFFFFFFFB
推荐内容
阅读全文
AI总结
更多推荐
相关推荐
查看更多
freeCodeCamp

freeCodeCamp.org的开源代码库和课程。免费学习编程。
Free-Certifications

专门针对计算机开发领域的精选免费课程和认证资格清单。
markitdown

Python tool for converting files and office documents to Markdown.
热门开源项目
活动日历
查看更多
直播时间 2025-04-25 15:00:00


直播时间 2025-04-23 19:00:00

GitTalk:国内首个微服务编排框架Juggle实战解析
直播时间 2025-04-22 18:31:56

字节AI 黑科技!从 Manus Agent 入门 Eino
直播时间 2025-04-09 14:34:18

樱花限定季|G-Star校园行&华中师范大学专场
直播时间 2025-04-07 14:51:20

樱花限定季|G-Star校园行&华中农业大学专场
所有评论(0)