qhnw.net
当前位置:首页 >> C++中怎么把一个十进制数的某一个二进制位改为0 >>

C++中怎么把一个十进制数的某一个二进制位改为0

int change(int x, int n) { // 这里的n都是从0开始的 // 高位的话插一句 n = sizeof(int)*8-n-1 return x & ~(1 << n); } 先把1左移n位,得到00010000形式的一个数字,然后取反得到11101111形式的数字,然后和原来的数进行“位与”操作.与0得0,与1不变.所以第n位就变成0其他位不变.如果你的n是从高位算的,稍微改改就行了.

number&~(1就会把number的二进制第n位置0

很简单.如果这个十进制数的值在 C/C++ 语言本身所支持的范围内,如 char,short,int,long 之类,只需循环 N 次就能得到二进制值.这里的 N 等于数据类型的位数,如 char=8,

先将十进制转换成2进制,再由2进制转换成4、8、16进制 存放转换后的2、4、8、16进制的数组为字符串,方便显示. 数制之间的转换,十进制先转换为2进制,输入十进制到int型变量x中,一直进行x/2并取模x%2直到x=0,放到数组a[]中,代

对于机内数来数,无所谓2进制还是10进制,程序里用 int 型.输出可以表示为 2,8,10,16进制.下面是 10 进制转2进制输出的例子:调用函数 itoa(), 转为2进制输出.#include<iostream> using namespace std;#include<stdio.h> int main( ) {

int conv(int x) const{int result;int mask = ~0 - 1; //掩码 末尾为0 其他位为1result = x&mask; // 消去x最后一位result += (~x & 1); //将消去最后一位的结果加上取反的最后一位return result;} 十进制以二进制的方式存储 不用人为转换

#include <iostream.h> void main() { int sec(int n); int i; cout<<"请输入个10进制数:"; cin>>i; sec(i); cout<<endl; } int sec(int n) { int i; if (n!=0) { i = n%2; sec(n/2); cout<<i; } return i; }//递归实现供参考.

简单啦……#include<iostream> using namespace std; int num=4;//十进制数字的个数 int ten[100];//放十进制数的 int size=4;//二进制数的位数 int two[100][400];//存放二进制数的每一位,从高位到低位(0到size-1) void turntentotwo(int k,int p

使用除2取余 就可以了 ..

#include <iostream>#include <math.h> using namespace std; int main() { double s; double s1=1.0; s=s1; for(int i=2;i<=20;i++) { s1=s1+sqrt(i); s=s+s1; } cout<<"the result is:"<<s<<endl; return 0; } 0.5次方就是开方~~

网站首页 | 网站地图
All rights reserved Powered by www.qhnw.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com