精华内容
下载资源
问答
  • 二进制写法格式
    千次阅读
    2020-10-30 14:59:18

    由于十进制第一位数字不是0,因此其他进制的第一位数字应当为0以便和十进制区分

    1. 二进制数字以0b或0B开头,如0b1111,0B1000;
    2. 八进制数字以0o或0O或0开头,如0o7654,0O4567,076543;
    3. 十六进制数字以0x或0X开头,如0xffff,0X9abc;
    更多相关内容
  • 本文将集中演示C,C++语言的二进制,八进制,十六进制输出的写法。 正文 十进制转十六进制: C++ 版本 -> cout <<"十六进制:"<< hex <<num<<endl; C 版本 -> pr...

    目录

    前言

    正文

    示例

    附录


    前言

    一般大家默认二进制,八进制,十进制,十六进制分别用字符:bin, oct, dec, hex 来表示,平时各种计算机语言的默认输出的格式都是十进制的。本文将集中演示C,C++语言的二进制,八进制,十六进制输出的写法。

    正文

    十进制转十六进制:

    C++ 版本  ->         cout <<"十六进制:"<< hex <<num<<endl;

    C     版本  ->         printf("十六进制:%#x\n",i);

    ps1: C版本 %x会直接输出16进制数,%#x 的输出会带上0x的标志,如果'X'是大写,则带的标志也是大写0X。

    ps2: C++前面使用了16进制输出后,后面不加hex标志,也会将默认打印改为16进制。8进制同理。

     

    十进制转八进制:

    C++ 版本  ->        cout <<"八进制:"<< oct <<num<<endl;

    C     版本  ->        printf("八进制:%o\n",i);

     

    十进制转二进制:

    C或者C++的printf,cout可以实现直接输出八进制,十进制,十六进制数据,但是不支持直接的二进制输出,需要调用其它库函数。

    其中C语言版本借助<stdlib.h>的itoa函数,调用方式: itoa(num, s, 2)。num:要转成二进制的数;s:提前定义好的char类型数组;2:二进制基数。

    C++版本借助<bitset>库,调用方式bitset<len>(num),其中 len: 二进制输出的位数,提前自定义; num:要转成二进制的数。

     

    C++ 版本  ->       cout <<"二进制:"<<bitset<10>(num) <<endl; //10是二进制位数,自定义为多少输出就是多少位,高位补0

    C     版本  -> 

                              char s[10]; //自定义二进制数的位数,输出位数是实际所需位数

                              itoa(num,s,2);//转成字符串,基数为2             

                              printf("二进制:%s\n",s);


    示例

    定义:用不同进制输出99到102之间的数。

    #include <iostream>
    #include <stdio.h>
    #include <bitset>
    #include <stdlib.h>
    
    using namespace std;
    
    int main(){
    	
    	char s[10]; //自定义二进制数的位数,输出位数是实际所需位数
    	for(int num=99;num<102;num++){
    		//C++版本
    		printf("--------------------number(dec):%d\n",num);
    		cout<<"----C++----"<<endl;
    		//cout <<"十进制:"<< dec <<num<<endl;
    		cout <<"十六进制:"<< hex <<num<<endl;		
    		cout <<"八进制:"<< oct <<num<<endl;
    		cout <<"二进制:"<<bitset<10>(num) <<endl;//10是二进制位数,自定义为多少输出就是多少位,高位补0
    		cout<<"----C----"<<endl;
    		//C语言版本 
    		//printf("十进制:%d\n",num); 
    		printf("十六进制:%#x\n",num);
    		printf("八进制:%o\n",num);
    		itoa(num,s,2);//转成字符串,基数为2 
    		printf("二进制:%s\n",s);
    		
    	}
    
    } 

    输出: 

    --------------------number(dec):99
    ----C++----
    十六进制:63
    八进制:143
    二进制:0001100011
    ----C----
    十六进制:0x63
    八进制:143
    二进制:1100011
    --------------------number(dec):100
    ----C++----
    十六进制:64
    八进制:144
    二进制:0001100100
    ----C----
    十六进制:0x64
    八进制:144
    二进制:1100100
    --------------------number(dec):101
    ----C++----
    十六进制:65
    八进制:145
    二进制:0001100101
    ----C----
    十六进制:0x65
    八进制:145
    二进制:1100101
    
    --------------------------------
    Process exited after 2.586 seconds with return value 0
    请按任意键继续. . .

     

    附录

    C语言版本 printf 的 "%"定义的数据格式查询表

    展开全文
  • 然后将之前所得的余数逆序输出,得到的就是该十进制数的二进制写法。 #include #define Num 2 int main(){ int num; int a[16]; int i=1,j; scanf("%d",&num); for(j=0;j;j++) { i=num%Num; num=num/Num; a[j]=i; } ...

    C语言

                 转化思路:“除2求余,逆序排序”,既就是用十进制数除以2,可以得到一个商和余数;将余数保存起来,用商再去除以二,再得到一个商和余数,反复进行,直到商小于1时结束;然后将之前所得的余数逆序输出,得到的就是该十进制数的二进制写法。
    
    #include<stdio.h>
    #define Num 2
    
    int main(){	
    int num;	
    int a[16];	
    int i=1,j;	
    scanf("%d",&num);	
    for(j=0;j<16;j++)
    	{		
    	i=num%Num;		
    	num=num/Num;		
    	a[j]=i;
    		}	
    		printf("该数二进制为:");	
    		for(j=15;j>=0;j--)	
    		{		
    		printf("%d",a[j]);		
    		if(j%4==0)		
    			printf(" ");	
    	}
    		return 0;
    }
    
    
    #include<stdio.h>
     void printBinaryDigit(int n){	
            int sizeOfBits = sizeof(int) * 8;	
            int i = sizeOfBits - 1;
          	for(i = sizeOfBits - 1; i >= 0; i--)
     		{	
     			if(n & (1 << i))	
     				{			
     				        printf("1");	
     				        	}		
     		    else		{		
     		    	printf("0");	
     		  	}
     			} 	
     			printf("\n");
     			}
     			 int main(){ 
     			 	int n;	
     			 	for(n = -3; n <= 3; n++)
     			 		{		
     			 		    printBinaryDigit(n);	
     			 		}
     			 		 	return 0;
     			  }
    
    
    
    
                          输入1个无符号的十进制整数,
                          将其转换成二进制,并输出。(10分)
    

    题目内容:从键盘输入1个小于65536的无符号的十进制整数,将其转换成16位二进制,并输出。
    具体要求完成的功能如下:
    1)如输入负数,则输出 “数据小于0”
    2)如超过65535,则输出“超过最大数”
    3)输出转换过的16位二进制数;
    输入格式:输入一个小于65536的正整数输出格式:二进制数每8位数字后空一格,不足16位补0,行末没有空格。
    输入样例:
    7651
    输出样例:
    00000010 11111101```
    #include<stdio.h>
    int main(){
    int a[16]={0},m,i,time;//数组会往后补0,但是不会往前

    scanf("%d",&m);//输入一个整数m 
    if(m>=0&&m<=65535)
    {
    	time=0;
    	while(m!=0){
    		time++;
    		if(m%2==1){
    			a[16-time]=1;
    		}
    		
    		else if(m%2==0){
    			a[16-time]=0;
    		}
    		m=m/2;//用除二法对十进制数进行转化 
    	}
    	for(i=0;i<=7;i++)
    	{
    		printf("%d",a[i]);
    	}
    	printf(" ");
    	for(i=8;i<16;i++)
    	{
    		printf("%d",a[i]);
    	 } 
    }
     else if(m<0)
     printf("数据小于0");
     else
     printf("超过最大数");
     
     return 0;
    

    }
    python语言

                     python十进制转化为二进制
    实例:给定一个非负十进制数n,如何将其转换成为一个二进制数?
    输入:123
    输出:1111011
    输入:1363
    输出:10101010011
    输入:12
    输出:1100
    首先我们看一下二进制,由十进制来类比。考虑一个十进制数,8327,那么数字: 8 3 2 7权值:1000 100 10 1所以,
     值为 8*1000+3*100+2*10+7*1。
     同理,考察二进制数,10110110,
     那么数字:1 0 1 1 0 1 1 0
     权值:128 64 32 16 8 4 2 1所以,值为128+32+16+4+2=182通常,我们在面对问题的时候,需要分析问题,而分析问题,通常会从最简单的情况开始。所以,看一下最简单的数字的十进制和对应的二进制:
     
    
    
    0                           0
    
          1                           1
    
          2                          10
    
          3                          11
    
          4                         100
    
          5                         101
    
          6                         110
    
          7                         111
    
          8                        1000
    
          9                        1001
    
         10                        1010
    
         11                        1011
    
         12                        1100
    
         13                        1101
    
         14                        1110
    
    其中可以发现的规律有:
    1、若n是偶数,则二进制数末尾数字是“0”,若n是奇数,则二进制数末尾数字是“1”。
    2、如果n的二进制数可以表示为bk … b2 b1 b0,
    那么如果n是偶数,那么n/2的二进制数可以表示为bk … b2 b1,
    如果n是奇数,那么(n-1)/2的二进制数可以表示为bk … b2 b1。
    
    
                                      二进制的转换
    def Dec2Bin(dec):   
     # 递归  
      result = ''    
      
      if dec:       
       result = Dec2Bin(dec // 2)        
       return result + str(dec % 2)    
       else:        return result
     def dec_to_bin(n):  
       if n < 0:  
        print("Please input a nonnegative integer next time. Bye!")   
        else:      
          original_N = n       
           suffix = ""       
            while n > 0:         
               suffix = str(n % 2) + suffix         
                  n = n // 2     
                     # The input n = 0 is dealt with as a special case       
                      if suffix == "":          
                        suffix = "0"      
                          # print("The binary equivalent of", original_N, "is", suffix)      
                            return suffix
    
    

    需要了解其他有关知识的可以加QQ群号
    821400946

    展开全文
  • 二进制是逢二进一,八进制是逢八进一; 常见进制:二进制,八进制,十进制,十六进制; 学习进制的原因:计算机数据在底层运算时,都是以二进制形式。也有数据是八进制,十进制,十六进制进行存储或运算,了解不同...

    1、进制的介绍

    定义:进位制,人们规定的一种进位方式;表示某一位置上的数,运算时是逢X进一位。

    十进制是逢十进一;二进制是逢二进一,八进制是逢八进一;

    常见进制:二进制,八进制,十进制,十六进制;

    学习进制的原因:计算机数据在底层运算时,都是以二进制形式。也有数据是八进制,十进制,十六进制进行存储或运算,了解不同的进制,便于我们对数据的运算过程理解的更加深刻;

    2、十进制、二进制、八进制和十六进制

    (1)十进制:运算规则:逢十进一,借一当十;

    (2)二进制

    二进制数据是用0和1两个数码来表示,例如:0101000;进位规则是“逢二进一“,借位规则是”借一当二“

    打开电脑中的计算器,点击1,再点击2;打开窗口如中间图片;计算0011+1结果为右边的图片;

    (3)八进制和十六进制

    八进制采用0-7,八个数字,逢八进一;

    十六进制采用0-9和A-F(或a-f)组成,A到F表示10-15;逢十六进一;

    3、不同进制书写格式:

    十进制:在代码中,数值默认都是十进制,不需要加任何修饰;

    二进制:数值前面以0b开头,b大小写都可以;

    八进制,数值前面以0开头;

    十六进制:数值前面以0x开头,x大小写都可以;

    4、进制之间转换

    (1)二进制到十进制

    公式:系数*基数的权次幂相加;系数:每一【位】上的数;基数:几进制,就是几;权:从数值的右侧,以0开始,逐个+1增加;

    例如:0b100=1*2^2+0*2^1+0*2^0=4;

    (2)十六进制到十进制

    公式:系数*基数的权次幂相加;

    0x100=1*16^2+0*16^1+0*16^0=256;

    (3)八进制到十进制

    公式:系数*基数的权次幂相加;

    0100=1*8^2+0*8^1+0*8^0=64;

    (4)十进制到二进制,十进制到十六进制;

    除基取余:使用源数据,不断的除以基数(几进制,基数就是几)得到余数,直到商为0,再将余数倒着拼起来即可。

     

    5、快速进制转换法

    8421码:

    8421码又称BCD码,是BCD代码中最常见的一种;BCD(binary-coded Decimal)二进制码十进制数;在这种编码方式中,每一位二进制值的1都是代表一个固定数值,把每一位的1代表的十进制数加起来得到的结果就是它所代表的十进制数;

    (1)二进制快转十进制

     将二进制数值直接套入其中,0所对应的值不取,1所对应的值取出并相加;

    (2)二进制快速转八进制

    八进制:将三个二进制位看作一组,再进行转换;

    原因:八进制逢八进一,三个二进制位最多可以表示111,也就是数值7,如果出现第四位就超范围了;

    例如:将60的二进制0b111100转换位八进制;

    (3)二进制快速转十六进制

    十六进制:将四个二进制位看为一组,再进行转换;

    原因:十六进制逢十六进一,四个二进制位最多可以表示1111,也就是数值15,如果出现第五位就超范围了;

    例如:将60的二进制0b111100转换位十六进制;

    6、原码、反码和补码

    注意:计算机中的数据,都是以二进制补码的形式在运算,而补码则是通过反码和原码推算出来的;

    (1)原码:可以直观看出数据大小;

    就是二进制定点表示法,即最高位位符号位,【0】表示正,【1】表示负,其余位数表示数值大小;通过一个字节表示7和-7,一个字节等于8个比特位,也就是8个二进制位;

    7的表示:0(符号位) 0000111;即00000111;代码:byte b1=7;

    -7的表示: 1(符号位)0000111;即10000111;代码:byte b2=-7;

    (2)反码:转数据;

    正数的反码与其原码相同,负数的反码是对其原码逐位取反,但符号位除外;

    (3)补码:运算数据;

    整数的补码与其原码相同,负数的补码是在其反码的末位加1;

    (4)总结:

    正数的原码/反码/补码都是相同的;

    负数的反码,是根据原码取反(0变1,1变0)得到的(符号位不变)

    负数的补码,是根据反码的末尾+1,得到的;

    例如:-7的补码:

    原码:1(符号位) 0000111——符号位不变,0变1,1变0;

    反码:1(符号位)1111000——反码末尾+1,求补码;

    补码:1(符号位) 1111001;

    (5)根据补码反向推原码

    7、位运算

    (1)介绍

    位运算符是二进制的运算,先将十进制数转成二进制后再进行运算。

    在二进制位运算中,1表示true,0表示false;

    (2)位移运算符

    <<有符号左移运算,二进制位向左移动,左边符号位丢弃,右边补齐0;

    运算规律:向左移动几位,就是乘以2的几次幂;

    >>有符号右移运算,二进制位向右移动,使用符号位进行补位;

    运算规律:向右移动几位,就是除以2的几次幂;

    >>>无符号右移运算符,无论符号位是0还是1,都补0;

    (3)位运算符介绍

    符号

    计算方式

    &

    遇到0(false)则0(false),两边同时位1(true),结果才是1(true)

    |

    遇到1(true)则1(true),两边同时位0(false),结果才是0(false)

    ^

    相同为false,不同为true

    ~

    取反,二进制位全部取反,0变1,1变0,包括符号位;

    <<

    有符号左移运算,左边符号位丢弃,右边补齐0

    >>

    有符号右移运算,根据符号位,补齐左边;

    >>>

    无符号右移,无论最符号位是0还是1,都补0;

    4)异或运算的特定啊

    一个数被另外一个数,异或两次,该数本身不变;

    练习1:a和b两个数互换;

    第一种方法:

    第二种方法:

    练习2:

    把数组反转;arr={1,2,3,4,5}——arr={5,4,3,2,1}

    展开全文
  • 二进制和十六进制

    万次阅读 2018-08-16 08:40:17
    不管用什么高级语言编写的程序最后都要转换为二进制语言,才能在计算机上执行,因此掌握二进制知识对学习编程语言是非常有帮助的。本篇和同学们探讨二进制计数原理以及与十进制、十六进制的转换。通过本篇的学习,你...
  •  // '0x' prefix --> hexadecimal literal 请注意,二进制文字语法是Java 7中引入的。 八进制文字很容易成为语义错误的陷阱。如果您定义了'0'十进制文字的前导,您将得到错误的值: int a = 0100; // 而...
  • 我了解到,严格模式禁用了八进制整数字面量的写法.因为有证据表明,一些新手会利用前导0来对齐多行中的数字,从而导致意想不到的结果: var sum = 015 + // 相当于十进制的13,而不是15 197 + 001; // 反正是1 console...
  • 客户端与服务器交互时都需要双方协商,确定消息的二进制格式。客户端在向服务器发起请求时会根据协议创建二进制数据块,然后依托tcp, udp, http等协议将二进制内容传递给服务器,后者根据协议的规则按照特定次序从...
  • 十六进制写法

    千次阅读 2016-09-14 16:13:50
    做题目的时候,用到273化为16进制数,脑子一下有点蒙,虽然...纠结了很久才明白,自己理解错误的原因在于:没能理解这三个1,每个1各占一个4位二进制。 即:0001 0001 0001 不是我想象的0001 0011.细节真的超级重要!
  • 前言二进制是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数,如果想要在前端中处理音频和视频。那你必须要对二进制数据有很好地掌握和操作能力。下面话不多说了,来一起看看详细介绍的吧类型...
  • Python如何读写二进制数组数据,代码,如果你,二进制数,字节,结构Python如何读写二进制数组数据易采站长站,站长之家为您整理了Python如何读写二进制数组数据的相关内容。问题你想读写一个二进制数组的结构化数据到...
  • C++二进制的详细介绍

    千次阅读 2017-09-17 19:11:02
    二进制是计算机的语言,用数字0或1或.表示,0内表示的数据是没有数据的,1内表示的数据是有数据的,而他们的数据是怎么计算的呢,这用到了二进制转换不同进制的算法,通常在c++中计算机中的二进制8个位(bit)表示一个...
  • 计算机内部表示任何数据都是用二进制。而与人进行交互时,可以将数据转换成人可以理解的内容:10进制、文字、图片、音频视频。不同进制的计算方式是相通的:| 十进制 十进制逢十进一 | 二进制 二进制逢二进一 | | —...
  • Java二进制表示法首先了解下二进制二进制是相对十进制而言的,当然还有八进制,十六进制等等,我们常用的都是十进制,计算机用的都是二进制,而符号表示常用十六进制。二进制就是只有0、1两个值表示的数,规则是逢...
  • 因为十进制非0开头 所以其他进制的写法 要前补0用于区分 ...二进制 0b 或 0B开头 八进制 0开头 十六进制 0x或0X开头 负数前面加 - 转载于:https://www.cnblogs.com/china8036/p/5595342.html...
  • First of all please give me an advice why we need them during storing information计算机以二进制形式存储数有时我们根据存储的实际位进行思考是有用的,在这种情况下,我们熟悉的十进制系统可能有点尴尬(因为转换...
  • java中的二进制、八进制、十六进制。
  • 进制 我们平时使用的数字都是由 0~9 共十个数字组成的,例如 1、9、10、297、952 等,一个数字最多能表示九,如果要表示十、十一、十九、一百等,就需要多个数字组合起来。 例如:表示 5+8 的结果,一个数字...
  • C语言二进制、八进制、十六进制整数书写和输出

    千次阅读 多人点赞 2020-04-18 19:35:52
    文章目录一、二进制、八进制、十六进制整数的书写1、二进制2、八进制3、十六进制4、需要注意的坑二、二进制、八进制、十六进制整数的输出四、版权声明 整数是我们生活中常用的数据类型,也是编程中常用的一种数据,...
  • C# 二进制数表示

    千次阅读 2022-02-15 17:00:15
    C# 二进制数表示
  • int n1 = 14;//十进制转成十六进制:Integer.toHexString...//十进制转成二进制Integer.toBinaryString(12);//十六进制转成十进制Integer.valueOf("FFFF",16).toString();//十六进制转成二进制Integer.toBinaryStr...
  • 二进制: int a = 0b10; a其实=2 八进制: int a = 01; a其实=8 十六进制: int a = 0x1; a其实=16 转载于:https://www.cnblogs.com/caoxinyu/p/10568487.html...
  • 我认为这是一个不太理想的解决scheme,但是你可以这样做String.format("%16s", Integer.toBinaryString(1)).replace(' ', '0')在java.util.Formatter中没有内置二进制转换,我build议您使用String.replace来replace...
  • 十进制转二进制,用java的两种基本方法,适合新手。1.String字符串拼接法。2.引入int变量求和法。
  • for (j = 1; j * a[i] <= m && j <= x; x -= j, j *= 2) b[++tot] = j * a[i]; if (x) b[++tot] = x * a[i];
  • C++读写二进制格式文件

    千次阅读 2017-08-18 20:28:13
    在实际应用中,为了节约存储空间,文件多会以二进制格式保存,所以有必要了解如何在C++中读取二进制文件中的数据。
  • 二进制枚举,就是说对于一个上限二进制数(一般来说每位都为1),枚举他所有小于等于它的所有二进制数,也可以用来表示这个二进制数的所有子集,可以用来枚举一个数列的所有可能子集,ACM的常用枚举技巧之一。...
  • 二进制数在C#中不能直接表示,且所有的二进制数都是以字符串进行表示。如:二进制11011111,表示字符串为:“11011111”。 二进制转十进制 Console.WriteLine($"DF={Convert.ToInt32("11011111", 2)}"); 十进制转...
  • c++基础篇:二进制

    2019-09-09 14:40:54
    1.十进制整数转二进制 35(10)=100011(2) 十进制小数转二进制小数 二进制加法 35+12=00100011+00001100=00101111=47 10进制负数转二进制,先转成二进制,然后取补,取补原则是取反加一 -15=-1111=-00001111...
  • lua二进制操作函数

    2021-01-26 15:50:29
    由于 Lua 脚本语言本身不支持对数字的二进制操作(例如 与,或,非 等操作),MUSHclient 为此提供了一套专门用于二进制操作的函数,它们都定义在一个“bit”表中,使用时只要requre “bit”即可。 bit.ashr - 带...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 103,737
精华内容 41,494
热门标签
关键字:

二进制写法格式