提示コードの関数ですが。char型の-1という値が来るので表示すると 1 0 0 0 0 0 0 1と表示されるはずなのですが 全て1になってしまいます。これはなぜなのでしょうか? 3とか正の値なら普通にビットを表示してくれるのですが負の値になると表示がおかしくなる理由が知りたいです。
cpp
1#include <iostream> 2#include <filesystem> 3 4#include <map> 5 6 7void print_bit(char bit) 8{ 9 for (int i = 7; i >= 0; i--) 10 { 11 12 printf(" %d ",bit >> i & 0x01); 13 } 14} 15 16int main() 17{ 18 19 //printf("size: %d\n", sizeof(char)); 20 21 char c = -1; 22 23 print_bit(c); 24 25// printf("%d\n",(int)c); 26 27 28 return 0; 29}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/03/05 04:36
2021/03/05 05:08
退会済みユーザー
2021/03/05 06:00
2021/03/05 06:17
2021/03/05 11:12