이것은 정말 이상합니다. 아무도 이것을 설명 할 수 있습니까?C에서 한 줄에 바이트를 빼는 방법 #
이 코드는 작동하지 않습니다
const byte ASC_OFFSET = 96;
string Upright = "firefly";
byte c7 = (byte)Upright[6] - ASC_OFFSET;
//Cannot implicitly convert type 'int' to 'byte'.
이 코드는 작동하지 않습니다
const byte ASC_OFFSET = 96;
string Upright = "firefly";
byte c7 = (byte)Upright[6] - (byte)ASC_OFFSET;
//Cannot implicitly convert type 'int' to 'byte'.
을하지만, 별도의 줄에 빼기를 넣어 잘 작동합니다 :
const byte ASC_OFFSET = 96;
string Upright = "firefly";
byte c7 = (byte)Upright[6];
c7 -= ASC_OFFSET;
나는 문장을 별도의 줄에 두는 것을 꺼려한다. 그렇지만 나는 궁금해해야한다. ...
왜?
안녕하세요 램버트 - 오늘 밤에 롤에 올거야! 나는 int와 back에 대한 round-trip을 받아들이는 것보다 약간의 unpretty 코드를 가지고 있기 때문에 여러 줄에 코드를 보관할 예정 임에도 불구하고 이것을 받아들입니다. – Flipster
하하 감사합니다! :) AFAIK, 코드에서 보든 상관없이 모든 * 산술 연산에 왕복 *이 발생합니다. 내가 올바르게 기억한다면, 모든 연산은 데이터 타입이 무엇이든 관계없이 CPU의 고유 한 크기로 발생합니다. 둘 중 하나를 사용하여 실제로 아무 것도 저장하지 않습니다. (나는 이것을 재확인 할 것이고, 내가 틀렸다면 나는 여기에 게시 할 것이다.) – Mehrdad
우. 흥미 롭 군. 몇 초 동안 수천 번 호출되는 비트/바이트 수준의 작업을 수행하고 있으며 모든 것을 바이트로 유지하는 것이 int로 작업하는 것보다 빠르다는 것을 알았습니다. 나는 그것이 사실이 아닌지 알고 싶어 할 것입니다. 감사! – Flipster