1. 程式人生 > >c++ 位操作實現資料標誌位獲取與更新

c++ 位操作實現資料標誌位獲取與更新

<strong><span style="font-size:18px;">#include "stdafx.h"
#include <iostream>
using namespace std;

int  get_state(int& value,int index)  
{ 
	if((1<< (index)) & value) 
	{  
		return 1; 
	} 
	else 
	{ 
		return 0; 
	} 
}
void set_state(int& value,int index,int state)
{
	int nFlag = 1;

	nFlag = nFlag << index;

	if (state  == 0)
	{
		value = value & (~nFlag);
	}
	else if(state == 1)
	{
		value = value | nFlag;
	}
}

int _tmain(int argc, _TCHAR* argv[])
{

	int value = 4095;


	for (int i=11;i >= 0;i--)
	{
		cout<<get_state(value,i);
	}
	cout<<endl;

	set_state(value,1,0);

	for (int i=11;i >= 0;i--)
	{
		cout<<get_state(value,i);
	}
	cout<<endl;
	
	
	
	system("pause");
	return 0;
}
</span></strong>

相關推薦

c++ 操作實現資料標誌獲取更新

<strong><span style="font-size:18px;">#include "stdafx.h" #include <iostream> usin

C#使用SqlDataAdapter 實現資料的批量插入和更新

近日由於專案要求在需要實現中型資料的批量插入和更新,晚上無聊,在網上看到看到這樣的一個實現方法,特摘抄過來,以便以後可能用到參考。 一.資料的插入 DateTime begin = DateTime.Now; string connectionString = ......; using(Sql

c#判斷操作系統是32還是64

ping interop 64位 lin last 直接 run 遇到 roc 做一個c#項目時,遇到要獲取操作系統位數的問題,在網上找了幾個小時,都沒有找到比較完整的解決方案。話不多說,直接上可以運行的代碼(簡單、粗暴) using System.Runtime.Con

通過操作實現四則運算

test sub () return expect 意思 define 掌握 功能 在最早學習四則運算的過程中,我們其實就已經掌握了進制算法,這一次我將對二進制運用這個進制算法來實現四則運算。 四則運算 math.c /** * 功能:通過位操作實現四則運算 * 算法:

操作實現加減乘除四則運算

tle 參與 nbsp pre 圖片 操作數 整數 spa 或操作 解決方案 需要熟練掌握一些常見的位操作實現,具體為: 1)常用的等式:-n=~(n-1)=~n+1 2)獲取整數n的二進制中最後一個1:n&(-n)或者n&~(n-1)如:n=010100,

ORBSLAM2計算描述子距離——C++ 操作得到二進位制32int值中有多少個1

看ORBSLAM2時算描述子之間的距離時看到的神奇的位操作,特此記錄一哈。 unsigned int v = *pa ^ *pb; v = v - ((v >> 1) & 0x55555555); v = (v & 0x3333

postgresSQL 實現資料修改後,自動更新updated_date/ts等欄

1. 需求說明:      實現MYSQL中有on update CURRENT_TIMESTAMP 2. 需求分析   由於資料庫遷移需要將MYSQL中的資料遷移到postgresSQL中,由於MYSQL中有on update CURRENT_TIMESTAMP這種功能但

c# 對oracle插入資料過長超出限制的解決方案

通過建立儲存過程的方法解決問題,如下所示,儲存過程的名字為insertGEO,有4個輸入引數,Childrens,RingInParent直接通過sql語句插入時,欄位值過長會報錯,所以先在資料庫中建立儲存過程 create or replace procedure insertGEO (v_i

C 操作 左移32 錯誤

搬磚拼接64位數字,因高32位long未先強轉64,導致拼接失敗,順便發現個問題,32位變數左移32位等於原數值。C下位移操作為邏輯位移,全部左移補零後,數值應為零,結果和預期不符,遂查詢癥結所在。 程式碼如下: long i = 512; i = i <<

操作實現加法運算

問題描述: 對下面程式碼中的a進行位操作(只能進行位運算),實現輸出OPQ int a = 0x434241; printf("%s\n", (char*)&a); 參考程式碼: #include <stdio.h> int a

操作實現許可權繫結

第一次寫技術部落格,請大家批評指正。 今天老大交個一個任務,將資料中的許可權部分由以前的字串批註改成整形,即用二進位制開關來實現許可權的分配。 說明:以前我們做許可權也都是一個欄位 Power,然後讀取它的內容,比如“登陸,修改密碼,檢視日誌”,讀到什麼就說明有什麼許可權,有啥許可權也

A+B按操作實現

Problem 1: Description: Write a function that add two numbers A and B. You should not use + or any arithmetic operators. a與b均為32位整數。不用加法

使用操作實現加減乘除運算

前言 在實際應用中一定要注意邊界問題,包括上邊界和下邊界 注意: 位操作中常用的公式 a=n&(n-1);//去掉n中最右邊的1; b=n&(-n);//得到n中最右邊的1 -n==~

Oracle case when 實現資料資料的判斷過濾

需求 現在有一份管線資料,表中含有欄位buildTime說明了管線的建設日期,我們需要按時間段統計管線的資料 這是,我們需要對管線表中建設日期所對應的欄位進行分類 實現如下: 實現 對現有的資料進行分類判斷過濾,使用到了 case when ca

C++:操作基礎篇之操作全面總結

位操作篇共分為基礎篇和提高篇,基礎篇主要對位操作進行全面總結,幫助大家梳理知識。提高篇則針對各大IT公司如微軟、騰訊、百度、360等公司的筆試面試題作詳細的解答,使大家能熟練應對在筆試面試中位操作題目。       下面就先來對位操作作個全面總結,歡迎大家補充。 在計

演算法:只用操作實現+、-、*、/、冪次運算

最近零星看到一些位操作的演算法題,看題目都有類似的套路,不用常規算術運算,只用位操作和判斷,實現+、-、*、/和冪次操作。之前都是看到了就做一做,今天寫這篇文章對此種類型的演算法題做統一整理。 加法 不用+號做加法?首先回顧一下我們小學時候學的加法運算是

c++ 正則實現 千分分割

stream sstream clas pla bsp bre att nbsp class 1 #include <iostream> 2 #include <string> 3 #include <sstream>

CSAPP: 操作實現基本運算

目錄 實驗要求 實現程式碼 1、pow2plus1 2、pow2plus4 3、bitXor 4、tmin 5、isTmax 6、allOddB

MongoDB+C#基本操作實現

1、MongoDB 在伺服器端安裝MongoDB,在客戶端安裝RoboMongo,可以直接操作資料庫,而無需使用mongo命令列操作。 2、C# 在C#中使用MongoDB,首先需要引用Mongo

C/C++檔案操作資料處理

        這幾天工作的過程中,常常要對TXT中的資料進行處理、分析。以前在學校時,對檔案操作、檔案內容處理的這部分知識用的不是很多,這幾天用這些知識的時候,總是不太熟悉,要不停查閱資料。因此,這裡總結一下,方便後期查閱。         在ANSI C中,對檔案的操