странно, потому что вот такой код работает:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| #include<conio.h>
#include<stdio.h>
int main()
{
char H;
unsigned int N;
unsigned char S;
unsigned int UnitStateWord;
H = 2;
N = 56;
S = 16;
//scanf("%d",&H);
//scanf("%u",&N);
//scanf("%d",&S);
UnitStateWord=((H&0x3)<<14)|((N&0x1FF)<<5)|(S&0x1F);
printf("Phisyc adress is %04X\n",UnitStateWord);
getch();
return 1;
} |
|
http://liveworkspace.org/code/b8a7a61ac67913823b02aa8a3858ace6
но вот если раскомментарить и вводить числа именно из клавы, то в студии все считается, однако при выходе программа крашится. это потому, что неправильно заданы флаги ввода для scan, что приводит к повреждению. из-за этого может и считаться неверно. сделайте у себя все переменные типа unsigned int и во всех scanf поставте "%u".