16进制,2进制,输出数的二进制表示

itoa转换为2进制的char*字符串,输出,cout<<hex<<128输出16进制

https://www.zhihu.com/question/20329210   8为无符号的范围是-128——127,00——7f表示0到127,80——FF表示-128到-1

char ss[33];           -1的补码16进制表示为0xffffffff,共需要32位,且高位不是0,所以需要33个字节来存;如果是-128呢?输出ffffff80,也需要33个字节;如果是128,只输出10000000,不需要33字节
cout << -1<< endl;
_itoa(-1, ss, 2);;

cout<<hex<<-128<<endl;     输出ffffff80;cout没有bin的形式可以输出二进制

cout<<128<<endl;       上句cout的状态为hex,会保留下来,所以这句也是输出80,80是128作为一个int的16进制表示

0x0——0x7fffffff赋值给int是非负整数,0x8000000——0xffffffff表示了[最大负数,-1]的范围,例如-1的16进制表示为0xffffffff

int  a=0xffffffff;    cout<<0xfffffff;为无符号的4294967295  4,294,967,295是最大的unsigned int(32位)值,输出a结果为-1,a=0xffffffe是-2

最小的int是0x80000000

int a=0x80000000,a的值为-2,147,483,648; 

1 int d = 0xffffffff;
2 cout << d << endl;
3 cout << 0x7fffffff << endl;
4 cout << 0x1 << endl;
5 cout << 0xffffffff << endl;
时间: 2024-10-09 22:49:45

16进制,2进制,输出数的二进制表示的相关文章

详解2进制,10进制,16进制,8进制,36进制

本篇介绍C/C++语言中的进制的概念,主要介绍2进制.10进制.16进制,这三种是编程时必须掌握的也是最经常使用的.另外,介绍8进制和36进制,当中 36进制在实际project项目中会遇到. (本文选自<C/C++学习指南>.邵发.附录"2进制,10进制,16进制") 讲2进制.10进制.16进制的视频教程,点击观看 权利声明:作者拥有本书的所有权利. 作者授权不论什么人都能够自由转载本站点公布的内容,但转载时必须遵守下面限制: ①转载时必须全文转载.不得有不论什么改动,

详细解释2进制,10进制,16进制,8进制,36进制

本篇介绍C/C++语言中的进制的概念,主要介绍2进制.10进制.16进制,这三种是编程时必须掌握的也是最常用的.另外,介绍8进制和36进制,其中 36进制在实际工程项目中会遇到. (本文选自<C/C++学习指南>,邵发,附录"2进制,10进制,16进制") 权利声明:作者拥有本书的全部权利.作者授权任何人都可以自由转载本网站发布的内容,但转载时必须遵守以下限制: ①转载时必须全文转载,不得有任何修改,必须包含"权利声明"和"官网地址"

Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)

使用Python内置函数:bin().oct().int().hex()可实现进制转换. 先看Python官方文档中对这几个内置函数的描述: bin(x)Convert an integer number to a binary string. The result is a valid Python expression. If x is not a Python int object, it has to define an __index__() method that returns a

单个循环输出数圈(简单易懂)

// IntegerRing.cpp : 定义控制台应用程序的入口点.// /*题目描述以1为中心,用2,3,4, ..., n, ..., n*n的数字围绕着中心输出数圈, 如若n=4,则7 8 9 106 1 2 115 4 3 1216 15 14 13输入一个整数n(1<=n<=10)输出数圈矩阵样例输入5样例输出21 22 23 24 2520 7  8  9  1019 6  1  2  1118 5  4  3  1217 16 15 14 13*/ #include "

【c语言】将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数

// 将一个数的二进制序列逆序,然后输出逆序之后的二进制序,所对应的数 #include <stdio.h> // 从原数拿出最低位,放到mid中,mid左移,原数右移 int reverse(int a) { int mid = 0; int bit; int n = 31; for (; n > 0; --n) { bit = a & 1; mid |= bit; mid <<= 1; a >>= 1; } return mid; } int main

查看两个int数的二进制有几位不同

题目:查看两个int(32位)数的二进制有几位不同. 分析:要理解该题目的意思,就要明白C语言中关于位的一些操作符. 1)"&",按位与操作符,从低位到高位对两个数的每位进行与操作,如1001&1101=1001,都为1则取1: 2)"|",按位或操作符,有一个是1就取1: 3)"^",异或,不同则取1: 4)"~",非操作符,用来对一个二进制数按位取反: 5)"<<",左移操作

输出一个数二进制的所有位及奇偶位

首先我们看一下输出一个整数二进制的所有位. 如果要输出它的所有位,从最高位开始每次移动i个长度,并且每一位都与1. 代码: #include <stdio.h> int main() { int num = 9; int i; for (i = 31; i>=0;i--) { printf("%d",((num>>i)&1)); } return 0; } 同理奇数位从它的最高位开始,每次移动i个长度并且i=i-2,每一位都与1,.偶数位从第二为开

假设数n在b进制下为回文数,求最小的b

题目链接:here 假设n=b0+b1+b2....+bk 如果b2<=n,那么那么n在b进制下有多个数组成,可以直接暴力算 如果暴力没有正确的结果,即: 如果b2>n,那么n在b进制下只有两个数组成 要组成回文树,则xb+x=n  b=n/x-1 ,(n%x==0,x<b),要求b最小,则使x最大, 从sqrt(n+1)开始枚举x即可 #include<iostream> #include<cstdio> #include<cmath> using

模拟时间进制转换,并输出当年日历

这个是朋友托我打的,不属于ACM,但觉得挺有意思,所以就放到这里了,题目有两个要求,输出当1年1月1日到前年每月的1号隔了多少天,并输出这天是星期几,然后再按格式输出这一年12个月的公历日历. 是一个挺简单的模拟,就是有点小麻烦和小细节需要注意,下面是代码: #include<iostream> #include<cstdio> #include<cstring> using namespace std; struct Node { int y,m,d,day; };