将一个无符号十进制数的二进制逆转,然后以输出

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
 int m = 0, n = 0, x = 0, y = 0;
 int i = 0, count = 0;
 printf("请输入m和n:\n");
 scanf("%d%d", &m, &n);
 for (i = 0; i < 32; i++)
 {
  x = (m >> i) & 1;
  y = (n >> i) & 1;
  if (x != y)
   count++;
     }
 printf("m和n有%d个位不同\n", count);

system("pause");
 return 0;
}

时间: 2024-12-29 10:46:36

将一个无符号十进制数的二进制逆转,然后以输出的相关文章

将一个十进制数转为二进制形式并判断它是否是2的n次幂

java提供了十进制转化为二进制.十六进制.八进制的函数:在java.lang.Integer这个API包中,转换函数如下 public static String toBinaryString(int i) public static String toHexString(int i) public static String toOctalString(int i) 这3个函数都可以将十进制的整数转换成二.一六.八进制数,不过转换后的结果都是字符串的形式. 在这里介绍下转换为二进制的情况.

[C/C++]如何将一个无符号整型所有数据位置为1

正解「x = -1;」 -1超出无符号整型x的表达范围,根据标准(C++11 section 4.7.2),-1将被转化为2^n-1(n为x的bit数). 不正解 「x = 0xFFFFFFFF;」 这只适用于32bit整型. 不正解「x = ~0;」 这个被很多书认定为「标准答案」的解答也是错的.C/C++标准支持原码/反码/补码三种负数表示形式,只有在补码环境下才会得到正确结果.(例如在反码下,~0将得到-0,-0转为无符号仍然是0) 那么x = ~0u呢? 仍然是错的.根据标准(C++11

Java十进制数转二进制的方法

使用Integer.toBinaryString(num) ,可以把十进制数转换成二进制 //十进制转换成二进制 Integer.toBinaryString(num); binary 二进制 System.out.println(Integer.toBinaryString(3)); 原文地址:https://www.cnblogs.com/luguankun/p/10419679.html

十六进制原码 无符号十进制 有符号十进制

00 0 001 1 102 2 203 3 304 4 405 5 506 6 607 7 708 8 809 9 90A 10 100B 11 110C 12 120D 13 130E 14 140F 15 1510 16 1611 17 1712 18 1813 19 1914 20 2015 21 2116 22 2217 23 2318 24 2419 25 251A 26 261B 27 271C 28 281D 29 291E 30 301F 31 3120 32 3221 33

【模板小程序】任意长度十进制数转化为二进制(java实现)

妈妈再也不用担心十进制数过大了233 import com.google.common.base.Strings; import java.math.BigInteger; import java.util.Scanner; /** * 任意长度十进制数转化为二进制 */ public class AnyNumberConverterFromDecimalToBinary { /** * * @param srcNum 待转换的十进制数 * @return 二进制字符串 */ private s

有符号和无符号数据类型

原版出处:http://bbs.csdn.net/topics/340253678 C语言中提供了很多整数类型(整型),主要区别在于它们取值范围的大小.int代表有符号的整数,也就是说,用int声明的变量可以是正数也可以是负数,也可以是零,但是只能是整数.比如:int a = 3; int b = 0; int c = -5;以上这些都是合法的.int的取值范围因机器而异,一般而言,在较旧的PC上,int值在内存中一般是按2个字节(16位)进行存储的,在较新的PC以及工作站和大型机上,int值在

Java-java中的有符号,无符号操作以及DataInputStream

1. 无符号和有符号 计算机中用补码表示负数,并且有一定的计算方式:另外,用二进制的最高位表示符号,0表示正数.1表示负数.这种说法本身没错,可是要有一定的解释,不然它就是错的,至少不能解释,为什么字符类型的-1二进制表示是“1111 1111”16进制表示为FF,而不是1000 0001. 在计算机中,可以区分正负的类型,称为有符号类型,无正负的类型,称为无符号类型. 使用二进制中的最高位表示正负 一个字节为8位,按0开始记,那它的最高位就是第7位,2个字节,最高位就是15位,4个字节,最高位

十进制数与二进制数的互相转化

二进制数是机器的语言,它与我们常用的十进制数存在着转化的方式 十进制数转化二进制公式:1.整数部分:除2取余 2.小数部分:乘2取整: 或者用数轴法来计算该十进制数为哪几个2的幂的和,然后将相应位置1即可得到二进制数: 二进制转化十进制:找到所有二进制数为1的位,然后将2的位数减一次幂相加即可得到相应的十进制数.

分析轮子(三)- 十进制整数怎么变成无符号二进制的整数的

前言:在 分析轮子(二)- << ,>>,>> (左移.右移.无符号右移)的时候发现十进制数转二进制数的时候,负数的位数是够的,比如:负整数 -15 的二进制表示是:11111111111111111111111111110001 ,但是 正整数 15 的二进制表示是:1111,抱着好奇心,我看了一下源码,现分析如下. 注:玩的是JDK1.7版 一:请先看一下如下资料,他们解释了计算机中为什么使用二进制表示数据?计算机中正数.零.负数是如何表示的以及为什么? 1):关于