请问我设置的32位二进制输出,但最后为什么会多出一个0呢?

图片

0

5个回答

只发现最后会多输出一个空格,空格后面那个0是不是在主函数里输出的?

0
u014327136
yukangliu 全部代码在上面,请问是哪里出问题了
接近 4 年之前 回复
u014327136
yukangliu 主函数没问题
接近 4 年之前 回复

贴一下完整代码看看!

0
u014327136
yukangliu 已经贴了,帮忙看一下
接近 4 年之前 回复

目测不在这个函数里面。可以只运行一次这个函数看看

0
u014327136
yukangliu 这个函数就是从另一另一个程序里扣出来的,试过好多次都这样,是不是unsigned造成的
接近 4 年之前 回复

#include
#include
using namespace std;

int bit[32];
int i;
int Bit(unsigned int n)
{
for(i=0;i {
bit[i]=n%2;
n/=2;
}
for(i=31;i>=0;)
{
cout< if((i+1)%4==0)
{
cout }
}
}
int main()
{
unsigned int n;
int count=0;
cin>>n;
while(n)
{
cout<<"第"<<count+1<<"次"<<endl;
count++;
cout<<n<<"&"<<n-1<<endl;
cout<<Bit(n)<<endl;
cout<<Bit(n-1)<<endl;
n=n&(n-1);
cout<<"*******************************************"<<endl;
cout<<Bit(n)<<endl;
}
cout<<"\n总共"<<count<<"次运算"<<endl;
}

0

cout<<Bit(n)<<endl;这一句,Bit()返回了一个0然后被你在主函数里输出了,这就是那最后的0。

0
u014327136
yukangliu 索噶,thank 友
接近 4 年之前 回复
u014327136
yukangliu 索噶,thank 友
接近 4 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c++读取文件总是多一个字符
使用fstream逐个读取文件的代码大概如下 while (!fin.eof()) { fin.get(ch); cout<<ch; }但是这样子每次都会多出一个字符出来,比如最后一个字符是\n,打印出来就是两个换行 原因是 因为文件指针到最后一个字符时并不会触发eof,再读一次读不到数据才触发eof, 这样ch还保留着上一次的数据,又被输出一次,peek()方
实现把一个无符号数的二进制位模式从左到右反转后输出。例如:在32位机器下,把25,0~011001变成100110~0
今天做了一道关于位运算的题。 题目:实现把一个无符号数的二进制位模式从左到右反转后输出。 例如:在32位机器下,25的二进制为0000 0000 0000 0000 0000 0000 0001 1001        变成1001 1000 0000 0000 0000 0000 0000 0000  即2550136832. 我采用的是移位来得出结果,具体代码如下: #incl
【JAVA】 二进制的前导的零
题目内容:计算机内部用二进制来表达所有的值。一个十进制的数字,比如18,在一个32位的计算机内部被表达为00000000000000000000000000011000。可以看到,从左边数过来,在第一个1之前,有27个0。我们把这些0称作前导的零。现在,你的任务是写一个程序,输入一个整数,输出在32位二进制表达下它前导的零的个数。输入格式:一个整数,在32位的整数可以表达的范围内。输出格式:一个整...
QT使用QDataStream输出二进制文件多四个字节
使用如下QDataStream方式输出二进制文件,文件头部多四个字节,代表文件大小,不管怎么都去不了;//写二进制文件QFile file(&quot;F:/1.rgb&quot;);if(!file.open(QIODevice::WriteOnly)){QMessageBox::critical(this,&quot;Warning&quot;, &quot;Can't open file for writing&quot;,QMessageBox::...
颠倒给定的 32 位无符号整数的二进制位。(python)
颠倒给定的 32 位无符号整数的二进制位。 示例: 输入: 43261596 输出: 964176192 解释: 43261596 的二进制表示形式为 00000010100101000001111010011100 ,   返回 964176192,其二进制表示形式为 00111001011110000010100101000000 。 class Solution: ...
从Python的 3 * 0.1 == 0.3 输出False说浮点数的二进制
今天在学习Python核心编程的时候,十进制浮点数那段看到一个有趣的事情。 &amp;amp;gt;&amp;amp;gt;&amp;amp;gt;0.1 0.1000000000000001 为什么会这样?
二进制的前导的零
二进制的前导的零
面试题:输入一个整数,输出该整数二进制中1的个数。
代码:C语言 //输入一个整数,输出该整数二进制中1的个数。其中负数用补码表示。 //左移运算符是用来将一个数的各二进制位全部左移若干位。相当于乘法运算,表示为&quot;&amp;lt;&amp;lt;&quot; //右移运算符是用来将一个数的各二进制位全部右移若干位。相当于除法运算,表示为&quot;&amp;gt;&amp;gt;&quot; #include&amp;lt;stdio.h&amp;gt; //整数与数字“1”进行与运算(&amp;amp;)。低位到高位循...
写表格格式的时候经常会多出一页空白页
这个问题怎么解决,去删除那一页??? 看到页面下的回车键符号,点到这里,然后调整段落(面板上段落那有个斜下的小箭头,点它),设置行间距为固定值1磅就好了,你就会发现空白页就没了。
找到一个32位数的第一个0是第几位
const char fzb[256] = { 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
关于0x80000000为什么等于-2147483648和负数在内存上储存的问题
1·负数怎么储存 (1)十进制负数是以其补码储存在内存上。 验证:求得-8在内存上的1的个数为29 在32位系统上,-8的储存 -8的储存是以-8的补码,储存在内存上。 -8的原码 1000 0000 0000 0000 0000 0000 0000 1000 取反 由于第一位是符号位 不用改变 得:1111 1111 1111 1111 1111 1111 1111 0111
C语言为什么不能精确表示浮点数
浮点数是如何存储的呢?目前已知的所有的C/C++编译器都是按照IEEE(国际电子电器工程师协会)制定的IEEE 浮点数表示法来进行运算的。这种结构是一种科学表示法,用符号(正或负)、指数和尾数来表示,底数被确定为2,也就是说是把一个浮点数表示为尾数乘以2的指数次方再加上符号。 从存储结构和算法上来讲,double和float是一样的,不一样的地方仅仅是float是32位的,double是64位的
如何处理流写入文件后面多加出一个null
写代码一定要仔细,小心,手一抖,写错点,就需要花更多时间去找问题, 下面给大家介绍下我悲惨案例: 昨晚我自己写了工具类FileUtil,主要是处理文件格式的相互转换,输入文件,返回String,写完后输出的结果多加了null, 之前以为是流的问题,流没关等等原因导致,上网找资料查询原因,其实流没问题,是自己想多了 检查了很久没查出来,白天又debug调试,才发现自己太不小心了,分享出来
【程序员面试金典】有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。
题目描述 有两个32位整数n和m,请编写算法将m的二进制数位插入到n的二进制的第j到第i位,其中二进制的位数从低位数到高位且以0开始。 给定两个数int n和int m,同时给定int j和int i,意义如题所述,请返回操作后的数,保证n的第j到第i位均为零,且m的二进制位数小于等于i-j+1。 测试样例: 1024,19,2,6 返回:1100 class BinInsert...
VS2010 CString转字符数组时,数组中每个字符后面都会多出一个\0 解决办法
CString转字符数组时,数组中每个字符后面都会多出一个\0 的原因:  是Unicode字符集的问题。选择项目->项目属 性(或直接按alt+F7)->配置属性,在右边找到“字符集”,将“使用Unicode字符集”改为“使用多字节字符集”。保存之后需要重新生成 解决方案,然后通过网上介绍的多种方法从CString转字符数组每个字符后面再也不会多出\0字符了。      实际
RS485通讯时,在结束到的数据中总是出现多余的一个字节0x00
最近一个项目中用到RS485通讯,三个从机都连接到STM32的同一个485主机,但调试发现在主机接收从机的数据时,总是在第一个字节前面多收到一个0x00,但程序找不到任何问题。上网查了下,发现很多人都遇到过这样的问题,解决方法大概有以下三种: (1)控制器连了J-Link,下载程序后把J-link拔掉就好了。 (2)导线问题,换一根485通讯的导线就行了。 (3)在485发送数据的时候,禁止
C++读取文件为何会多读一行?
近来在做概率统计的作业,由于手算均值中值什么的,还有画茎叶图太麻烦,所以写了个小程序。但是当我算到最后时却发现这个小程序有一个bug,然后就gg了。这个bug大概是这样的: 原本在data.txt中只有三个数,读到内存中却有四个数。 正确的结果应该是这样:出事的代码如下:#include <iostream> #include <fstream> #include <vector> #inclu
自定义DataGridView的复选框列,点击最后一个会自动多出来一行的解决
自己定义了DataGirdview的column之后,发现如果有DataGridViewCheckboxColumn的话,不添加数据的话,执行代码就会多出来一行。并且点击最后一行的复选框,这个gridview就自动生成一个新行。后来发现这个设置下酒不会了: this.dataGr
32位整数转二进制字符串算法
只能说这个工具类太常用了,本人经常需要对比两个数字的二进制形式,jdk自带的方法又会把前面为零的那一部分给截掉,不方便比较,所以粘贴此类出来作为备忘
为什么会输出0呢
#include rnusing namespace std;rnint main( )rnrn double a,b,c,s;rn a = 3; rn b = 4;rn c = 5;rn s = 1/2 * (a+b+c);rn cout<<"s="<
php最后输出时有空行
遇到一个问题,在使用php做输出时多输出一行; 一开始以为是逻辑上问题,检查后无发现; 但多输出的空行是在所有的逻辑执行完之后输出的,感觉神奇,在此记录;例子如下:<?php echo "1\n"; echo "2\n"; ?>预期的输出应该是 >>>>>><<<<<<< 1 2 >>>>>><<<<<<< 但实际上的输出是 >>>>>><<<<<<< 1 2>>>>>><<<<
32位int整型数的二进制表示中1的个数
前段时间遇到这个题,现在记录几个实现方法。1,第一个最直观的方法,用一个二进制表示只有1个1的数字去测试整型数的各个位置是否为1:,直接上代码:int bit_count_1(int num) { int flag = 0x1; int count = 0; for (int i = 0; i < 32; ++i) { if (0 != (num & f
java中将一个int型数转化为32位二进制数
public static String toFullBinaryString(int num)//将整数num转化为32位的二进制数 { char[] chs = new char[Integer.SIZE]; for (int i = 0; i &lt; Integer.SIZE; i++) { chs[Integer.SIZE - 1 - i] = (char) ((...
【编程之美】任意给定一个32位无符号整数n,求n的二进制表示中1的个数
任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4。这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,我今天就遇到了,当时懵了。现在想想多简单,浪费了一次机会。 1.普通法 这种方法最简单,就是通过移位+计数。首先把n于1相&,如果结果==1,说明最后一位是1,计数器+1;然后右移一位,最后一位
Java - 输出二进制数字
输出二进制数字, 标准库函数: Integer.toBinaryString(). 简易实现方式://: Main.java/** * 二进制数打印 */class MyClass { // 替代Integer.toBinaryString() public static String toBinaryString(int num) { if (num == 0
1141: 进制转换
1141: 进制转换 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 3764  Solved: 1128 SubmitStatusWeb Board Description 将十进制整数n转换成二进制,并保存在字符数组中,最后输出。要求定义并调用convert()函数, 将十进制整数n对应的二进制数存入字符数组str中。 v
fastreport报表产生的条码 扫码后会多出一个字符0或者其他字母
二维码 扫描完之后 多出一个位字符 0 或者字母 修改FastReport BarCode 属性 checksum 属性改为false;
Highchart的折线图总是显示一个点的原因
1.首先,看看这一小段 highchart配置: var chart = Highcharts.chart('container', { title: { text: '图表变换' }, subtitle: { text: '普通的' }, xAxis: { categories: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八...
最后一个单词长度(定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。)
给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。 如果不存在最后一个单词,请返回 0 。 说明:一个单词是指由字母组成,但不包含任何空格的字符串。 示例: 输入: &quot;Hello World&quot; 输出: 5 public class test0305 { public static void main(String[] args) { Solution S ...
Java小程序:十进制转二进制
/** * 9.编写一个程序,它先将键盘上输入的一个字符串转换成十进制整数,然后打印出这个十进制整数对应的二进制形式。 提示如下: * 这个程序要考虑输入的字符串不能转换成一个十进制整数的情况 * ,并对转换失败的原因要区分出是数字太大,还是其中包含有非数字字符的情况。提示:十进制数转二进制数的方式是用这个数除以2 * ,余数就是二进制数的最低位,接着再用得到的商作为被除数
关于写二进制文件多出“0D”的问题
<br />如下一个简单的程序:<br />#include <stdio.h> int main(int argc, char *argv[]) { FILE *fp; char buffer[5] = {0x01, 0x0a, 0x00, 0x00, 0x0a}; fp = fopen( "E:/my.dat ", "a+"); fwrite(buffer, sizeof(char), 6, fp); fclose(fp); return 0; }  <br />运行完
Java 输出整数的二进制讲解
上图是32位 9的二进制,int n = Integer.numberOfLeadingZeros(num)计算出1的左边0的个数,如图我已经标注出来的28, int
补码 输出
请写出输出结果     4294967285,-128         unsigned short A = 10;   printf("~A = %u\n", ~A);   char c=128;   printf("c=%d\n",c); 解析:~A =0xfffffff5,int值 为-11,但输出的是uint。所以输出4294967285 第二题,c=0x10,输出的是in
【算法】二进制数的逆序输出
给定一个无符号32位整数,要求将其2进制形式数反转(即首尾颠倒,非按位取反),输出反转后的整数。 即如果给定的数:43261596,它的二进制数为:00000010100101000001111010011100,将二进制数反转得到:00111001011110000010100101000000,所以期望的输出结果应该为:964176192
发送数据到PI时,出现字符串后面多一个空格的问题
业务场景:一个很奇怪的问题,string格式的字段,发送到PI后查看报文发现会在末尾多给一个空格,后来发现基本上是数字、金额等字段,这些字段赋值给string后确实是会在后面多一个空格。 解决办法:使用CONDENSE:GS_ITEM-ZMWSTS,GS_ITEM-DMBTR2.或者GS_HEAD-ZMWSTS  = |{ &amp;lt;FW_ITEM&amp;gt;-ZMWSTS }|. 问题得到解决。 ...
在IE6,7下,li本身没浮动,但是li的内容有浮动,li下边就会产生一个间隙
在IE6,7下,li本身没浮动,但是li的内容有浮动,li下边就会产生一个间隙 ul{margin:0;padding:0;width:302px;} li{ list-style:none;height:30px;border:1px solid #000; vertical-align:top;} a{width:100px;float:left;height:30px;backgr
守护线程,用户线程
在Java中有两类线程:User Thread(用户线程)、Daemon Thread(守护线程)     Daemon的作用是为其他线程的运行提供便利服务,比如垃圾回收线程就是一个很称职的守护者。User和Daemon两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果 User Thread已经全部退出运行了,只剩下Daemon Thread存在了,虚拟机也就退出了。 因为没有了被守护者...
js 中 foreach循环(for in)中,最后会多出一个值
我们在js中经常会用for in 的方式进行循环数组,但是有时莫名的在循环最后一个的时候值会变成一个奇怪的值(具体什么值,下文会提到),困惑很久,今天记一笔。 程序如下: Array.prototype.remove1 = function(){}; var  res = {"RESPONSECODE":"000000","RESULTDATASET":[{"BILL
C语言二进制输出
#include int main() { int i; int x=0; int a[32]={0}; printf("请输入一个十进制数字:\n"); scanf("%d",&i); while(i) { a[x] = i%2; i /= 2; x++; } printf(
计算一个无符号整数的二进制表示中1的个数
计算一个无符号整数的二进制表示中1的个数,这个问题又被称作[url=http://en.wikipedia.org/wiki/Hamming_weight]Hamming weight[/url] Java中有支持的API: Integer.bitCount Long.bitCount [code=&quot;java&quot;] public static int bitCount(int i) {...
文章热词 设计制作学习 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 为什么学习java呢 区块链价格为什么会上涨