[ create a new paste ] login | about

Link: http://codepad.org/cxfnyaRG    [ raw code | output | fork ]

C++, pasted on Oct 6:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>


template<typename T>
inline T set_hibyte(T val, unsigned char cb){
   const int n = (sizeof(T) << 3) - 8; 
   return (val & ~(0xFF << n)) | ((T)cb << n);
}


int  main(void) {
   unsigned short val = 0x1234; // word
   printf("src: %X\n", val);
   printf("dst: %X\n", set_hibyte(val, 0xEF));

   unsigned int val1 = 0x12345678; // dword
   printf("src: %X\n", val1);
   printf("dst: %X\n", set_hibyte(val1, 0xAB));
   return 0;
}


Output:
1
2
3
4
src: 1234
dst: EF34
src: 12345678
dst: AB345678


Create a new paste based on this one


Comments: