十进制数负三的二进制数补码为_-8的补码

十进制数负三的二进制数补码为_-8的补码十进制转二进制补码(正负都可)指针初学将一个十进制正(负)整数转换为对应的二进制补码(用指针完成十进制转二进制:1.先判断该整数是正数还是负数如果是正数则二进制补码首位为1,且对应的二进制补码就是原.如果是负数则二进制补码为原码基础上取反且末位加1(加1则涉及进位)代码:#include”stdio.h”#include”Stdio.h…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

十进制转二进制补码(正负都可) 指针初学

将一个十进制正(负)整数转换为对应的二进制补码(用指针完成

十进制转二进制:1.先判断该整数是正数还是负数 如果是正数则二进制补码首位为1 , 且对应的二进制补码就是原. 如果是 负数 则二进制补码为原码基础上取反且末位加1(加1则涉及进位 )

代码:

#include"stdio.h"
#include"Stdio.h"
int main()
{ 
   
	int *p;
	int x,i;

	printf("输入一个十进制整数:");
	scanf_s("%d", &x);

	p = (int *)malloc(sizeof(int) * 32);//为二进制分配内存空间

	if (x < 0)//负数转正 如果为负数 二进制第一位为1 正数则为0
	{ 
   
		*p = 1;
		x = -x;
	}
	else if (x > 0)    *p = 0;
	//判断正负 改首位
	//-----------------------------------------------------------------------
	for(i=31;i>=1;i--)//原码
	{ 
   
		*(p+i) = x % 2;
		x = x / 2;
	}
	//-----------------------------------------------------------------------

	//二进制取补码规则;若x为负数则 源码换反码 且反码末位加1
	if (*p == 1)//换反码
	{ 
   
		for (i = 1; i <=31; i++)
		{ 
   
			if (*(p+i) == 1)       *(p + i) = 0;
			else				   *(p + i) = 1;
		}
	}

	if (*p == 1)//负数
	{ 
   
		if (*(p+31) == 0)	*(p + 31) = 1;//最后一位为0 则直接加1
		else if (*(p + 31) == 1)      //最后一位为1 进位 
		{ 
   
			for (i = 1; i <= 31; i++)
			{ 
   
				if (*(p + 31) + 1 == 2 )//逢2进1
				{ 
   
					*(p + 31) = 0;
					*(p +30) += 1;
				}
				else if (i > 0 && *(p + i) == 2)
				{ 
   
					*(p + i) = 0;
					*(p + i+1) += 1;
				}
			}
		}
	}

	//-----------------------------------------------------------------------
	for (i = 0; i <= 31; i++)//输出
	{ 
   
		printf("%d", *(p + i));
	}
	printf("\n");

	system("pause");
	return 0;
}

运行测试:

测试: 5 结果:000000000000000000000000000101

测试   -5

测试: -5 结果:11111111111111111111111111111011

测试   -5

测试: -7 结果:11111111111111111111111111111011

测试  -7

初学阶段,算法可能有问题,不妥的多提意见…

参考资料:

1.十进制转换为二进制、原码、反码、补码、移码.
2.二进制补码 百度百科.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180121.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • linux安装pip命令安装_centos安装pip

    linux安装pip命令安装_centos安装pip对于Python开发攻城狮及系统运维攻城狮来说,pip的安装那是必不可少的一个过程。鉴于网上很多安装过程写得过于复杂,本人根据pip官方手册总结了以下最为快捷的安装方式,只需要2步操作。curlhttps://bootstrap.pypa.io/get-pip.py-oget-pip.pypythonget-pip.py或者直接运行以下代码:#!/usr/bin/env…

  • 各类加载loading动画效果

    各类加载loading动画效果效果一: 一、HTMLLoading…二、CSS/*绿色背景*/body{   background:#4ea980;   margin:50px;}/*纯白色圈*/.loader{   text-indent:-9999em;   position:relative;   width:200px;   height:20

  • mysql数据库cap理论_CAP理论总结

    mysql数据库cap理论_CAP理论总结C代表Consistency,一致性,是指所有节点在同一时刻的数据是相同的,即更新操作执行结束并响应用户完成后,所有节点存储的数据会保持相同。A代表Availability,可用性,是指系统提供的服务一直处于可用状态,对于用户的请求可即时响应。P代表PartitionTolerance,分区容错性,是指在分布式系统遇到网络分区的情况下,仍然可以响应用户的请求。网络分区是指因为网…

  • 玫瑰花(C语言代码)

    玫瑰花(C语言代码)代码用到图形库,有音乐,音乐名为BadApple.mp3,可以找一首mp3形式的歌,歌名改成BadApple.mp3,与.exe文件放在同一个文件夹下,程序执行时会播放名字为BadApple.mp3音乐(会玩的可以去看程序自己改),不同编译器颜色不同左vc,右Dev,颜色也可以通过RGB()进行修改。加个图形库(EasyX)的链接(根据提示来就行):https://blog.csdn…

  • 大公司为什么都有API网关?没你想的那么简单!

    大公司为什么都有API网关?没你想的那么简单!

  • 在ubuntu下如何搜索文件?

    在ubuntu下如何搜索文件?

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号