20180417_十进制与二进制的转换

一、十进制转二进制

1、正数

十进制转二进制的方法是递归除2,直到商等于0停止,倒序取余数;二进制通常呈4位、8位、16位、32位出现,高位不足补0;

以十进制55为例:

    最终得到的二进制数值为  11 0111 ,高位补0最终得到  0011 0111;

2、负数

负数转二进制需要先将负数取反得到正的十进制数值,之后根据正数的规则转换成二进制,再将二进制取反后加1;

以十进制-55为例:

  ① 取反得到数值55

  ② 55转换二进制为 0011 0111

  ③ 将 0011 0111 取反得到 1100 1000

  ④ 将 1100 1000 加1得到 1100 1001

则-55转换成的二进制数值为 1100 1001

二、二进制转十进制

       在计算机语言中,0表示正,1表示负;

    1、二进制首位为0

      将二进制所从后往前,依次计算第n位上数字乘以2的n-1次幂,所得到的和即为十进制数字;

      以 0011 0111 为例:

      1*2^0 + 1*2^1 + 1*2^2 + 0*2^3 + 1*2^4 + 1*2^5  =  1 + 2 + 4 + 16 + 32 = 55

      则最终的结果是55

     2、二进制首位为1

      二进制首位为1则表示次二进制数值为负数,根据十进制转二进制的规则逆推即可;先将该二进制数值减1后取反,转换成十进制以后取反即为得到的十进制数值。

      以 1100 1001 为例:

        ① 1100 1001 减1 得到 1100 1000

        ② 1100 1000 取反得到 0011 0111

        ③ 0011 0111 转化成十进制为55

        ④ 55取反得到 -55

      则最终得到结果为 -55

原文地址:https://www.cnblogs.com/ztnn/p/8870484.html

时间: 2024-10-08 23:03:42

20180417_十进制与二进制的转换的相关文章

二进制运算-十进制与二进制的转换

在学习JDK源码和JAVA一些开源框架源码的时候经常会碰到位运算,要搞懂位运算就得弄明白二进制和十进制之间的转换 一.十进制转换成二进制 1.正整数转换成二进制 十进制整数转换成二进制就是不停的除以二,直到不足二为止(0或者1),然后记录余数,从下往上排列出来就是二进制的值 举个例子:5和8转换成二进制 5的二进制为101,8的二进制为1000 2.负整数转换成二进制 负整数转换成二进制,首先取得它绝对值的正数的二进制,然后取反(0变1,1变0),然后加1 举个例子:-5的二进制(32位计算机中

Java 控制台做个十进制和二进制互相转换

计算机使用的是二进制,计算机只认识0和1 我们日常使用的是十进制,满十进一 既然计算机只认识0和1,那么我们日常使用的计算机时如何操作呢 这就需要一套二进制和十进制互相转换的公式了 首先说十进制转换二进制,就是不断的用十进制的数字除以2,直到十进制的数字最后为0时,将余数倒序排列就是十进制的二进制表示了 如下,十进制数字12转换为二进制 12 / 2 = 6 余数为 0 6 / 2 = 3   余数为 0 3 / 2 = 1   余数为 1 1 / 2 = 0   余数为 1 然后将余数倒序连起

用python写十进制与二进制之间转换

很简单的一段,当练手 def s2e(): e = [0,0,0,0,0,0,0,0] s = int(input("请输入一个十位数:")) for i in range(0,8,1): e[i] = int(s%2) s=s//2 e.reverse() print("二进制数为:",e) def e2s(): s=[0,0,0,0,0,0,0,0] a=0 s=list(input("请输入一个二进制数:")) s.reverse() fo

[Introduction to programming in Java 笔记] 1.3.7 Converting to binary 十进制到二进制的转换

public class Binary { public static void main(String[] args) { // Print binary representation of N. int N = Integer.parseInt(args[0]); int v = 1; while(v <= N/2) v = 2*v; // Now v is the largest power of 2 <= N. int n = N; // current excess while (v

十进制与二进制,八进制,十六进制的转换

(一)数制       计算机采用的是二进制,因为二进制具有运算简单,易实现且可靠,为逻辑设计提供了有利的途径,节省设备等优点,为了便于描述,又常用八.十六进制作为二进制的缩写.特点: (1)逢n进一,n是每种进位进数制表示一位数所需要的符号数目为基数. 二进制:逢二进一,借一当二 八进制:逢八进一,借一当八 十六进制:逢十六进一,借一当十六 (二)数制转换       不同进位计数制之间的转换原则:不同进位计数制之间的转换是根据两个有理数如相等,则两数的整数和分数部分一定分别一定相等的原则进行

二进制、八进制、十进制、十六进制之间转换

一. 十进制与二进制之间的转换 (1) 十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步,将168除以2,商84,余数为0. 第二步,将商84除以2,商42余数为0.

C++进制转换(十进制转二进制、八进制、随意进制)

十进制转二进制: //十进制转二进制 #include<iostream> using namespace std; void printbinary(const unsigned int val) { for(int i = 16; i >= 0; i--) { if(val & (1 << i)) cout << "1"; else cout << "0"; } } int main() { prin

十进制与二进制之间的自由转换

#include <stdio.h>#include<stdlib.h>int main(){    int Type,a,b[10],i=0,c=0;    printf("请输入转换类型 1:十进制转二进制:2:二进制转十进制;\n");    scanf("%d",&Type);    printf("请输入原数据\n");    scanf("%d",&a);    switch

二进制 八进制 十进制 十六进制之间的转换

一. 十进制与二进制之间的转换 (1)十进制转换为二进制,分为整数部分和小数部分 ① 整数部分 方法:除2取余法,即每次将整数部分除以2,余数为该位权上的数,而商继续除以2,余数又为上一个位权上的数,这个步骤一直持续下去,直到商为0为止,最后读数时候,从最后一个余数读起,一直到最前面的一个余数.下面举例: 例:将十进制的168转换为二进制 得出结果 将十进制的168转换为二进制,(10101000)2 分析:第一步:将168除以2,商84,余数为0.  第二步:将商84除以2,商42余数为0.