Во-первых, вы, кажется, печатаете что-то, называемое charCount
, без ошибок, и этот b
способ указания числа не является стандартным C. Я проверю, чтобы убедиться, что он делает то, что вы думаете,Для стандартного способа задания битовых комбинаций, подобных этому, используйте восьмеричный (число начинается с нуля) или шестнадцатеричный (число начинается с нуля и x
) формат.
Во-вторых, почти все компьютеры имеют одинаковые двоичные файлыпредставление для положительного целого числа и его беззнакового эквивалента, поэтому не будет никакой разницы.Будет различие, если число отрицательное, и это обычно зависит от старшего значащего бита.Ваши int
могут быть любого размера от 16 бит и более, хотя на настольном компьютере, ноутбуке или сервере это очень вероятно 32, и почти наверняка либо 32, либо 64.
В-третьих, printf()
знаетничего о типе данных, которые вы передаете ему.При вызове он даже не способен знать размеры своих аргументов или их количество.Это вытекает из спецификаторов формата, и если они не согласны с переданными аргументами, могут возникнуть проблемы.Это, наверное, худшая вещь о printf()
.