获取内存中整数二进制形式

采用移位和相与方式求整数在内存中的二进制形式。

#include<stdio.h>
typedef  int DataType;
int num_covert_binary(DataType num);

void main()
{
	DataType num;
	num = -1;
	num_covert_binary(num);
	num = 12;
	num_covert_binary(num);
	getchar();//让console 等待一下
}
int num_covert_binary(DataType num)
{
	DataType base_data;
	base_data = 1;
	base_data = base_data << (sizeof(DataType)* 8 - 1);//相当最高位是1其它位为0
	printf("\n%d在内存中二进制形式为:\n", num);
	for (int i = 1; i <= sizeof(DataType)* 8; i++)
	{
		DataType temp = base_data#

		if (temp == 0) //相与的结果为 0
		{
			putchar('0');
		}
		else
		{
			putchar('1');
		}
		if (i % 4 == 0)
		{
			printf(" ");
		}
		num = num << 1; //左移一位
	}
	return 0;

}

时间: 2024-10-24 09:21:26

获取内存中整数二进制形式的相关文章

C语言 打印变量在内存中的二进制形式(补码)

void show_bits(int n) { int i = 0; for(i=0;i<32;i++) printf("%d",(n&(1u<<(31-i)))!=0?1:0); putchar('\n'); } 整数的原码 = 整数的补码 负数的补码:(原码)->(反码)->(反码+1) 负数的原码:(补码-1)->最高位符号位别动其余均转反码

C语言中使用二进制形式输出

#include 〈stdio.h〉 int main(void) {     int userInt; //接收用户输入的无符号整型     printf("请输入您要转换的整数:");     scanf("%u", &userInt);     int binArr[33] = {0}; //一个int类型为4字节32位,符号占一位     int cElement = 0; //统计元素个数     while(1){         if(user

计算机中的原码,反码,补码,以及他们在内存中的存储形式。

1.原码 原码就是早期用来表示数字的一种方式: 一个正数,转换为二进制位就是这个正数的原码.负数的绝对值转换成二进制位然后在高位补1就是这个负数的原码 举例说明: int类型的 3 的原码是 11B(B表示二进制位), 在32位机器上占四个字节,那么高位补零就得: 00000000 00000000 00000000 00000011 int类型的 -3 的绝对值的二进制位就是上面的 11B 展开后高位补零就得: 10000000 00000000 00000000 00000011 但是原码有

整型数据在内存中的存放形式

整型数据在内存中是以其二进制的补码的形式存放的! 1.原码 就是以最高位作为符号位,0代表该数值为正,1代表为负! 比如:67和-67 2.反码 正数的原码.反码.补码相同! 负数的反码是在其符号位不变的基础之上,其余的数值位按位取反,就是0变成1,1变成0 3.补码 正数的原码.反码.补码相同! 负数的补码是其反码加1! 也就是说,在内存中,67其实存放的就是: 00000000 00000000 00000000 01000011 而-67其实存放的就是: 11111111 11111111

《斯坦福大学:编程范式》第二节:基本数据类型在内存中的二进制表达

我们以C/C++为例. 基本数据类型有: bool        1 byte char 1 byte       256个字符,其中75个字符是常用的   short 2bytes int 4bytes long 4bytes float 4 bytes double 8 bytes ---------------------------bytes------------------------------------- 1 bytes(字节) = 8 bit(位 binary digit)

对象在内存中存在的形式

程序运行起来会在内存划分为如图几个区域: 堆区:对象 栈区:基本数据类型(String类型也会存放在栈区) 全局区:存放全局数据 常量区:存放常量 代码区:存放代码 看下面一段代码 public class PersonOBJ{ public static void main(String[] args){ class Person{ int age; String name; } Person a = new Person(); a.age = 10; a.name = "小明";

论C/C++数据在内存中的二进制存放形式

http://blog.csdn.net/asmcos/article/details/46676101 http://blog.csdn.net/asmcos/article/details/46676087 http://blog.csdn.net/asmcos/article/details/46676073 http://blog.csdn.net/asmcos/article/details/46676053 http://blog.csdn.net/asmcos/article/de

打印出C# 中float ,double 在内存中的存放形式

1 float floatA = 2.2f; 2 uint a = BitConverter.ToUInt32(BitConverter.GetBytes(floatA), 0); 3 for (int i = 0; i < 32;++i ) 4 { 5 uint temp = 0x80000000 & (a << i); 6 if (temp==0) 7 { 8 Console.Write("0 "); 9 } 10 else 11 { 12 Console

vue获取内存中的值并写入

<template> <div class="container"> <h3>发表评论</h3> <hr> <textarea placeholder="请输入" maxlength="120" v-model="content"></textarea> <mt-button type="primary" size=&