方法:給定16進製制32bit數,將其第x位置0,第y位開始的三位置成110
注意考慮待置位數中有a~f的情況
description
假設你工作在乙個32位的機器上,你需要將某乙個外設暫存器的第x位設定成0(最低位為第0位,最高位為第31位),將第y位開始的連續三位設定成110(從高位到低位的順序),而其他位保持不變。對給定的暫存器值r,及x,y,程式設計計算更改後的暫存器值r。
input
僅一行,包括r,x,y,以逗號","分隔,r為16進製表示的32位整數,x,y在0-31之間且y>=3,(y-x)的絕對值》=3,保證兩次置位不會重合
output
更改後的暫存器值r(16進製制輸出)
sample input
12345678,0,3
sample output
1234567c
#include
2:#include
3:#include
4:
5:using
namespace std ;
6:
7://a~f : 10~15
8:int alparrup[6]= ;
9://a~f : 10~15
10:int alparrlow[6]= ;
11:
12:void run3748()
13:
46:
47://將x轉成數字
48: len = xstr.size();
49:if(len==1)
50: x = xstr[0]-'0' ;
51:else
if(len==2)
52: x = (xstr[1]-'0')+(xstr[0]-'0')*10 ;
53:
54://將y轉成數字
55: len = ystr.size();
56:if(len==1)
57: y = ystr[0]-'0' ;
58:else
if(len==2)
59: y = (ystr[1]-'0')+(ystr[0]-'0')*10 ;
60:
61://置位
62: tmp1 = 0xffffffff ;
63: tmp0 = 0x00000000 ;
64:
65://對第x位置0
66://即將num的第x位「與」0,在做「與」時若保證其他位不變,則需要「與」1
67: num &= (tmp1 ^ (1<68:
69://對第y、y-1位置1
70: num |= (tmp0 ^ (3<<(y-1)) ) ;
71://對第y-2位置0
72: num &= (tmp1 ^ (1<<(y-2)) ) ;
73:
74://輸出16進製表示用std::hex
75: cout<76: }
原 poj 2715 基礎題 獎學金
注意輸出 練習sort 與 scanf scanf會讀入空格字元!include include include include using namespace std define cdebbug 全域性資料 struct scholar bool cmp const scholar a,cons...
poj 3695 Rectangles 容斥原理
在容斥原理題單裡看到這個題,第一想法肯定是掃瞄線啊。但一看題單分析,還真是容斥。矩形相交的圖形和文氏圖差不多。然後dfs容斥就好了 題單裡第四題 include include include using namespace std struct rec rec rec 30 int nums 30...